develooper Front page | perl.perl5.porters | Postings from July 2001

Re: [ID 20010612.001] out of memory during regex compilation

Thread Previous | Thread Next
From:
Abigail
Date:
July 24, 2001 18:54
Subject:
Re: [ID 20010612.001] out of memory during regex compilation
Message ID:
20010725015239.12076.qmail@foad.org
On Tue, Jun 12, 2001 at 01:14:15PM +0100, Mike Guy wrote:
> 
> --- ./pod/perlop.pod.orig	Sun May  6 15:24:51 2001
> +++ ./pod/perlop.pod	Tue Jun 12 13:10:01 2001
> @@ -658,13 +658,15 @@
>      Customary  Generic        Meaning	     Interpolates
>  	''	 q{}	      Literal		  no
>  	""	qq{}	      Literal		  yes
> -	``	qx{}	      Command		  yes (unless '' is delimiter)
> +	``	qx{}	      Command		  yes*
>  		qw{}	     Word list		  no
> -	//	 m{}	   Pattern match	  yes (unless '' is delimiter)
> -		qr{}	      Pattern		  yes (unless '' is delimiter)
> -		 s{}{}	    Substitution	  yes (unless '' is delimiter)
> +	//	 m{}	   Pattern match	  yes*
> +		qr{}	      Pattern		  yes*
> +		 s{}{}	    Substitution	  yes*
>  		tr{}{}	  Transliteration	  no (but see below)
>  
> +	* unless the delimiter is ''.
> +
>  Non-bracketing delimiters use the same character fore and aft, but the four
>  sorts of brackets (round, angle, square, curly) will all nest, which means
>  that 
> @@ -733,6 +735,15 @@
>  and although they often accept just C<"\012">, they seldom tolerate just
>  C<"\015">.  If you get in the habit of using C<"\n"> for networking,
>  you may be burned some day.
> +
> +Subscripted variables such as C<$a[3]> or C<$href->{key}[0]> are also
> +interpolated, as are array and hash slices.    But method calls
> +such as C<$obj->meth> are not interpolated.
> +
> +Interpolating an array or slice interpolates the elements in order,
> +separated by the value of C<$">, so is equivalent to interpolating
> +C<join $", @array>.    "Punctuation" arrays such C<@+> are not
> +interpolated.


Perhaps it should be added that "@_" *does* get interpolated. It's
debatable whether @_ is an punctuation array or not - but if it isn't
you should be able to my() it, and you cannot.

Furthermore, it is not the entire story, @? and @{'?'} are two ways
of addressing the same array, and "@{'?'}" does get interpolated.


Abigail

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About