Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: loop to remove negatives

by Athanasius (Chancellor)
on May 15, 2012 at 04:31 UTC ( #970557=note: print w/replies, xml ) Need Help??

in reply to loop to remove negatives

Hi BluGeni,

You should prefer the more idiomatic syntax in Eliya’s solution.

Just thought I’d mention that the code snippet you give, which you say “doesn’t seem to do the job,” should actually work fine, except that there’s a semicolon missing after $i=0; in the for loop:

#!/usr/bin/perl use strict; use warnings; my @busi = ( -1, -42, 7, -17 ); for (my $i = 0; $i < @busi; $i++) { $busi[$i] =~ s/-//g; print "\$busi[$i] = $busi[$i]\n"; } __END__

Gives me:

$busi[0] = 1 $busi[1] = 42 $busi[2] = 7 $busi[3] = 17

as required.


Athanasius <°(((><contra mundum

Replies are listed 'Best First'.
Re^2: loop to remove negatives
by dsheroh (Prior) on May 15, 2012 at 09:53 UTC
    The code given in the OP would work fine, provided that all the values are in an array (@busi). If they're independent scalars ($busi1, $busi2, etc., as in the example of what currently works), then it won't.

    BluGeni, I strongly recommend putting your values into an array, then using

    for (@busi) { $_ =~ s/-//g; }
    (or, more idiomatically, s/-//g for @busi;) instead of working with the variables as independent scalars - any time you have a series of variables named $foo1, $foo2,..., that's a pretty strong indication that what you really want is an array.

    If you need help getting these values into an array, just show us the code that you're currently using to assign their values and we can show you how to modify it to use an array instead.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://970557]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2017-11-18 08:02 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (277 votes). Check out past polls.