Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Seeking guidance for more idiomatic way of (re)writing this script.

by Athanasius (Abbot)
on Jan 15, 2013 at 03:31 UTC ( #1013305=note: print w/ replies, xml ) Need Help??


in reply to Seeking guidance for more idiomatic way of (re)writing this script.

Two suggestions:

  1. Wherever possible, avoid scattering hardcoded constants throughout the code. Instead, aim to make the script easily configurable. As a first step, move any data which could change into a hash:

    my %config ( smtp_destination => 'mail.server.com', nas_array_ip_list => 'C:/path/to/nas_array_ip_list.txt', smtp_msg_from => 'name@email.com', smtp_msg_to => 'name@email.com', mail_file => 'C:/path/to/dmcheck.txt', username => 'username', password => 'password', reason => '/nas/sbin/getreason', nasmailmsg_from => 'name@email.com', nasmailmsg_to => 'name@email.com', dm_check => 'dmcheck.txt', );

    and access the hash data as needed:

    MIME::Lite->send('smtp', $config{smtp_destination}); if (! open my $fh, '<', $config{nas_array_ip_list}) ...

    As the next step, you may find it useful to populate the hash by reading in the data from a separate configuration file.

  2. Avoid system calls where Perl has equivalent built-in functions. So, replace

    system 'del dmcheck.txt';

    with

    unlink $config{dm_check} or warn "Could not unlink file '$config{dm_ch +eck}': $!";

    See unlink.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


Comment on Re: Seeking guidance for more idiomatic way of (re)writing this script.
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (15)
As of 2015-07-30 15:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (272 votes), past polls