Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
more useful options
 
PerlMonks  

Re^5: array or array ref as variable

by HelenCr (Monk)
on Jun 28, 2013 at 09:30 UTC ( #1041201=note: print w/ replies, xml ) Need Help??


in reply to Re^4: array or array ref as variable
in thread array or array ref as variable

In my opinion, something like this could work ( dropping the sub, in case you don't need that sub for something else):

my (@fw, @vrf, @vlan, @portchannel); my @arr_methods = ([ \@fw, &NT::FW], [\@vrf, &NT::VRF], [\@vlan, &NT:: +VLAN], [ \@portchannel, &NT::PORTCHANNEL] ); foreach (@arr_methods) { @{$_->[0]} = ($_->[1])->extract($content, %CFG); }

I haven't tested it, the right hand-side of the assignment may not work, (but it's close), if it doesn't work, maybe one of the higher gurus here can fix it.

Run it and tell us the result

Helen


Comment on Re^5: array or array ref as variable
Download Code
Re^6: array or array ref as variable
by Hossein (Acolyte) on Jun 28, 2013 at 10:57 UTC
    ok, I did this:
    my @arr_methods = ([ \@fw, \&NT::FW, 'FW'], [\@vrf, \&NT::VRF, 'VRF' +], [\@vlan, \&NT::VLAN, 'VLAN'], [ \@portchannel, \&NT::PORTCHANNEL, +'PORTCHANNEL'] ); foreach (@arr_methods) { @{$_->[0]} = ($_->[1])->extract( &slurpFile($CFG{$CFG{$_->[2]} +} ), %CFG); }

    If I run  [ \@fw, &NT::FW, 'FW'] I'll get this error message:

    Undefined subroutine &NT::FW called at main4.pl line 32.

    but when I do this: [ \@fw, \&NT::FW, 'FW'] that error message is gone.

    and when I run it I get this error message:

    Can't call method "extract" on unblessed reference at main4.pl line 48.

    /Hossein

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1041201]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2014-04-21 01:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (489 votes), past polls