James Kipp wrote:
>
> > > > $str = "
> > > > /var 0.99 50%
> > > > /usr 0.58 71%
> > > > /tmp 0.49 1%
> > > > "
> > >
> > > my @rows = map [split], split /\n/, $str;
> > > for (@rows) { $_->[2] =~ tr/%//d }
> >
> > Not quite! Because the string starts and ends with newslines
> > this leaves @rows with five elements. Consequently the tr//
> > dies when asked to operate on the undefined $_->[2].
> >
> > I admit that I thought this was more than likely to have come
> > from a file in the first place, but even so the trailing "\n"
> > is more than likely.
> >
>
> Good point. However I must apologize for posting the wrong string. The
> string as it is created does not have beginning and ending new lines, so
> steve's code works.
In which case
my @data = map { tr/%//d; [split] } split /\n/, $str;
:)
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>