Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: Perl script runs fine if exec'd from the directory, but gives error if run outside the directory.

by haukex (Archbishop)
on Oct 02, 2020 at 22:06 UTC ( [id://11122496]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Perl script runs fine if exec'd from the directory, but gives error if run outside the directory.
in thread Perl script runs fine if exec'd from the directory, but gives error if run outside the directory.

I have used your module

Glad to help. Note IPC::Run3 isn't my module (IPC::Run3::Shell, which uses that module, is). By the way, in the comments in the OP you mention DRY, and this is definitely a case where it applies. Here's how I might have coded this in order to avoid as much of the repetition as possible:

my @commands = ( { name=>'genhealth', arg=>'/sys/general', file=>'genhealthfile' }, { name=>'bat', arg=>'/env/bat', file=>'batteries' }, # ... { name=>'ssd', arg=>'/env/ssd', file=>'ssd_file' }, ); for my $cmd (@commands) { print "### Working on ", $cmd->{name}, "\n"; run3 ['uemcli', '-d', $vnxe_ip, '-u', $username, '-p', $password, $cmd->{arg}, 'show', '-detail'], undef, \my $out; my $str = decode('UTF-16', $out, Encode::FB_CROAK); my $filename = $cmd->{file}.'.txt'; open (my $fh, '>', $filename) or die "$filename: $!"; print $fh $str; close $fh; }

Update: By the way, I don't know why you are using file mode '+>', since that's only needed for R/W access, it seems to me '>' should be enough for your case. Beware of cargo-culting!

  • Comment on Re^3: Perl script runs fine if exec'd from the directory, but gives error if run outside the directory.
  • Select or Download Code

Replies are listed 'Best First'.
Re^4: Perl script runs fine if exec'd from the directory, but gives error if run outside the directory.
by pritesh_ugrankar (Monk) on Oct 03, 2020 at 00:14 UTC

    Hi Haukex,

    How you guys are able to write this elegant and mind opening stuff on the fly is beyond me. Hope one day I will reach there. Thank you once again for this. You are all generous and quite helpful.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2024-04-19 21:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found