On 07/13/2013 02:55 AM, John Delacour wrote:
#!/usr/bin/perl
use strict;
my @items;
while (<>) { # or use a file handle
chomp;
next if /^start/;
if (/^end/) {
print join ", ", @items;
print "\n";
undef @items;
that is the wrong way to clear an array (or hash). just assign () to it.
by calling undef you also deallocate any storage in the array which perl
would normally reuse.
and instead of a one liner this does the same but easier to read and
maintain (untested):
use File::Slurp ;
my $text = read_file( shift @ARGV ) ;
$text = s{ # extended regex syntax enabled by /x
^ # beginning of line. internal line
# match enabled by /m
start\n
(.+?) # grab record body
# .matches \n enabled by /s
\nend\n
}
{ # replace with code enabled by /e
join ', ', split /\n/, $1 ;
}gmsex ; # repeat for all records enabled by /g
print $text ;
uri
--
Uri Guttman - The Perl Hunter
The Best Perl Jobs, The Best Perl Hackers
http://PerlHunter.com
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/