[Chicago-talk] messy scalar into an array.

David J. Young younda at gmail.com
Tue Mar 2 07:33:17 PST 2010

I have no idea what your faxstat -r output looks like, but why no collapse
all of the white space down to single spaces, then you can split on the
singles space:

$line =~ s/\s+/ /g;

then you can split on the single space.

  DB<3> $line = 'a b  c   d     e       f';
  DB<4> $a=$line
  DB<5> $a =~ s/\s+/ /g;
  DB<6> p $a
 a  b  c  d  e  f
  DB<7> @a=split(" ", $a);

  DB<8> x @a
0  'a'
1  'b'
2  'c'
3  'd'
4  'e'
5  'f'


On Tue, Mar 2, 2010 at 8:46 AM, Richard Reina <richard at rushlogistics.com>wrote:

> I'm sorry for asking what likely should be a simple question but after
> spending a fair amount of time playing with qw(), split(), join(), etc. I
> still have not figured it out.
> I have some fairly messy system output which I have managed to isolate into
> a scalar with
> use strict;
> my @received = `faxstat -r`;
> I can't figure out how to neatly get this into an array so I can get the
> output into a database table;
> I've gotten this far;
> my $line;
> my @fax;
> foreach $line (@received) {
>    if (substr($line,0,5) eq "-rw---") { # make sure it's an actual fax
>                                         # and not the title of the output
>        chomp($line);
>    }
> }
> $line is exactly what I want but it's in the form of a scalar;  When I try
> to split it up into elements of an array with @fax=split("", $line); it does
> not work due to all the back to back white spaces.  If anyone can help me
> out with a better way to do this I would really appreciate it.
> Thanks,
> Richard
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk

I take the "Shhhh" out of IT - ydy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/chicago-talk/attachments/20100302/1b9b26bc/attachment.html>

More information about the Chicago-talk mailing list