[Chicago-talk] messy scalar into an array.
Warren Lindsey
warren.lindsey at gmail.com
Tue Mar 2 12:38:38 PST 2010
Which columns do you want? You could just work backwards from the end
of the array. That would always return the fax filename, foloowed by
time, then what I suspect is callerid?
On Tue, Mar 2, 2010 at 12:42 PM, Richard Reina
<richard at rushlogistics.com> wrote:
> Actually, I believe all the suggestion would work until I realized that
> every now in then there is a column that is completely blank and then it
> throw everything off. Here is an example of the output:
>
> -rw---- 2 14 <UNSPECIFIED> 14:53 fax00003459.tif
> -rw---- 1 14 501 443 9393 14:58 fax00003460.tif
> -rw---- 1 14 15:01 fax00002470.tif
>
> That occasional empty column messes it up. Is there a way to accommodate
> for that?
>
> Sorry, for the added wrinkle. I had not noticed that before.
>
> Richard
>
> Chicago.pm chatter <chicago-talk at pm.org> wrote:
>
> 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'
>
>
> ydy
>
> 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
>
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
>
More information about the Chicago-talk
mailing list