Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Better description of my concatenating problem

by a (Friar)
on Feb 22, 2001 at 10:54 UTC ( [id://60149]=note: print w/replies, xml ) Need Help??


in reply to Better description of my concatenating problem

Well, more perlish way to do some of this:
if ( /^Subject:\D+(\d+)/ ){ # if you can be sure of the '#' before the digits, use this # if ( /^Subject:.*#(\d+)/ ) not that it buys you much push @subject, $1; next; } # if /subject ...
push is much better than your $i++ which may be getting messed up, the way your snippet looks. I'm guessing your open(OUTPUT ... is supposed to be outside the while {...}.

Not as snazzy as the ever terse, er, tidy io's suggestion, but:

if ( /\s*Out Comments\s*(.*)$/ ) { push @out_comments, $1; while (<>) { # quit on a blank line or ------- last if /^\s*$/ or /^\s*[-]+\s*$/; s/^\s*//; # get rid of spaces at the beginning push @out_comments, $_; } next; } # if /Out Comments/
not the 'strictest' of methods (re-while-ing the <> is frowned on by pendants) but if you're confident of your data format, it works. I get the impression you expect only one msg per email, so your arrays aren't needed, so scalars might be better (that is, $i is usually ends up '1'). Just do "$subject = $1;" and "$out_comment .= $_;" for the inner while loop. You'll avoid typos by:
$output_str = "@subject[$j];@failed[$j];@monthi[$j]/@dayi[$j]/@yeari[$ +j];@routerval[$j];" . "@tag[$j];@montho[$j]/@dayo[$j]/@yearo[$j];@lotCode[$j];@com +mentso[$j]\n"; # or, if you've gone to scalars $output_str = "$subject;$failed;$monthi/$dayi/$yeari;$routerval;" . "$tag;$montho/$dayo$/$yearo;$lotCode;$commentso\n"; print OUTPUT $output_str; print $output_str;
And, last but definitely not least; perl -w/use strict, if you're gonna use the tools, use them *safely*. You'll be glad you did later on.

a

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://60149]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (None)
    As of 2024-04-25 01:21 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found