![]() |
|
|
|
#1 |
|
I know this may sound silly but given something like
if ($_ =~m/(one)|(two)|(three)/) Is there a maximum length on the size of the item between "/" and" /" ? Just curious as regards showing bad programming techniques. TIA Paul Paul Johnston |
|
|
|
|
#2 |
|
Posts: n/a
|
In article <>, Paul Johnston
<> wrote: > I know this may sound silly but given something like > > if ($_ =~m/(one)|(two)|(three)/) > > Is there a maximum length on the size of the item between "/" and" /" > ? > Just curious as regards showing bad programming techniques. There is no inherent limit. You are limited by your available memory for Perl scalars. You can test this easily: #!/usr/local/bin/perl use strict; use warnings; my $re; for my $x ( 'aaaa' .. 'zzzz' ) { $re .= "($x)|"; } my $s = 'XXXXX'; $re .= "($s)"; print "Length of RE = ", length($re), "\n"; if( $s =~ m/$re/ ) { print "Match: $&\n"; } __OUTPUT__ Length of RE = 3198839 Match: XXXXX FYI: this newsgroup is defunct. Try comp.lang.perl.misc in the future. |
|
|
|
#3 |
|
Posts: n/a
|
On Tue, 28 Nov 2006 10:21:50 -0800, Jim Gibson
<> wrote: >In article <>, Paul Johnston ><> wrote: > >> I know this may sound silly but given something like >> >> if ($_ =~m/(one)|(two)|(three)/) >> >> Is there a maximum length on the size of the item between "/" and" /" >> ? >> Just curious as regards showing bad programming techniques. > >There is no inherent limit. You are limited by your available memory >for Perl scalars. You can test this easily: > >#!/usr/local/bin/perl > >use strict; >use warnings; > >my $re; >for my $x ( 'aaaa' .. 'zzzz' ) { > $re .= "($x)|"; >} >my $s = 'XXXXX'; >$re .= "($s)"; >print "Length of RE = ", length($re), "\n"; >if( $s =~ m/$re/ ) { > print "Match: $&\n"; >} > >__OUTPUT__ > >Length of RE = 3198839 >Match: XXXXX > > >FYI: this newsgroup is defunct. Try comp.lang.perl.misc in the future. Many Thanks |
|