in reply to Help to assign a 2D-Array to another while excluding specific rows.


Hey guys I've been messing around with this some more, and I think I found a sufficient way to do this.
I don't know why this works now because I feel like I tried this already and it didn't work then.


Data in Array:
OWNER | 922337219576856 |rgiles |5005444 |156 |pts/220 |9:00:44 WAITING | 922337219576856 |mrandall |3309650 |35 |none |9:10:44 OWNER | 922337219576856 |mmartin |4565899 |122 |pts/101 |9:15:44 WAITING | 59761456123786 |rkelly |5555555 |999 |pts/900 |9:00:00 WAITING | 59761456123786 |mvick |1234567 |886 |none |9:20:00 WAITING | 59761456123786 |jrussel |7654321 |456 |tty/101 |10:00:00 OWNER | 86555522211 |joe |5151515 |000 |tty/100 |10:00:00 WAITING | 86555522211 |mmartin |1234567 |987 |none |11:00:00

CODE:
#Holds the names of users from SysPerf. my @SPUsers = ("mike", "john", "joe", "mmartin", "sp"); #Loop through all the records (a line at a time), and search for +matching users for (my $x = 0; $x <= $#records; $x++) { for (my $y = 0; $y <= $#SPUsers; $y++) { if ("@{ $AoA[$x] }" =~ "$SPUsers[$y]" && $AoA[$x][0] eq 'O +WNER') { splice @AoA,$x,1; } } } for (my $x = 0; $x <= $#AoA; $x++) { print "@{ $AoA[$x] }\n"; } print "Length of \$AoA = $#AoA\n";


____OUTPUT____
OWNER | 922337219576856 |rgiles |5005444 |156 |pts/220 |9:00:44 WAITING | 922337219576856 |mrandall |3309650 |35 |none |9:10:44 WAITING | 59761456123786 |rkelly |5555555 |999 |pts/900 |9:00:00 WAITING | 59761456123786 |mvick |1234567 |886 |none |9:20:00 WAITING | 59761456123786 |jrussel |7654321 |456 |tty/101 |10:00:00 OWNER | 86555522211 |joe |5151515 |000 |tty/100 |10:00:00 Length of $AoA = 5

Replies are listed 'Best First'.
Re^2: Help to assign a 2D-Array to another while excluding specific rows.
by hbm (Hermit) on Sep 14, 2011 at 17:43 UTC
    for (my $x = 0; $x <= $#AoA; $x++) { print "@{ $AoA[$x] }\n"; }

    Consider replacing the above with this:

    print "@$_\n" for @AoA;

    Where, each time through the loop, $_ is an array reference (like to $AoA[$x] in your code); and then it is dereferenced with @$_.