Robert Citek wrote:
>
> Hello Zeus,
>
> At 11:55 AM 1/29/2003 -0500, Zeus Odin wrote:
> >An even shorter version of yours is:
> >-------------------------
> >my @a;
> >while(<DATA>){
> > next unless /=/ && chomp;
> > push @a, split /=/, $_, 2;
> >}
> >print "$_\n" for @a;
> >-------------------------
>
> This is even shorter, eliminates all uses of variables, and slurps in the
> data all at once:
>
> #!/usr/bin/perl -w0
> print join("\n", map({split(/=/,$_,2)} grep(/=/, split(/\n/, <DATA>))));
>
> The only thing it does not do is use the regex. Is the regex a requirement?
It is not _quite_ the same. Your version uses "\0" as the input record
separator (-0 in perlrun) and doesn't print a newline after the last
record (join "\n"). If you want to slurp the whole file use the -0777
switch or undefine $/. But why slurp the file and then split it on
newlines?
This will do it correctly:
perl -ne's/=/\n/&&print' yourfile.txt
Or in a program:
while ( <DATA> ) {
s/=/\n/ && print;
}
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]