Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Run and/or download code directly from perlmonk nodes.

by Intrepid (Deacon)
on Sep 03, 2003 at 06:09 UTC ( #288521=note: print w/ replies, xml ) Need Help??


in reply to Run and/or download code directly from perlmonk nodes.

I *like* it!

A fellow Monk and I recently wrote a tool like this ourselves, but the in-memory eval() isn't a capability of our implementation. Anyway, I have a slight improvement to offer on your script. It concerns the mundane issue of where to save a file on disk. Your default /tmp would be fine on a single-user workstation but I thought about a multi-user system where security / privacy might be a greater concern, and one would want to confine one's activities to one's ~USER/ ($HOME) dir.

This small patch makes sure that such a directory exists before allowing the script to continue if writing to disk is going to be needed.

Here's the germane portion of what this change entails:

use File::Glob qw(:glob); use File::Spec qw(file_name_is_absolute catfile); # Configure this to an existing dir in your $HOME: my $home_space = ''; # /end user config. my ($HOME, $directory); if ($opt_m or $opt_M or $opt_f or $opt_F) { my $filename = $opt_f || $opt_F; die "Don't pass an absolute path!\n" if ($filename and File::Spec->file_name_is_absolute($filename)); $HOME = (bsd_glob('~'.$ENV{LOGNAME} , GLOB_TILDE | GLOB_MARK))[0]; $HOME = ($HOME =~s%/\Z%%) ? $HOME : ''; # Be kind to some Win32 users, comment this out: # die "No HOME found, no place to stash the code!\n" if not $HOME; # Directory to save fetched code in: $directory = $home_space ? File::Spec->catfile($HOME, $home_space) : $HOME; die "$directory does not exists.\n" if not -e $directory; }

Fun.

    Soren/Intrepid

-- 
Try my n.y.p.m.blue Perl Monks CSS Theme
(edit "On-Site CSS Markup" in your User Settings)


Comment on Re: Run and/or download code directly from perlmonk nodes.
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (10)
As of 2014-10-31 08:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (215 votes), past polls