Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

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; }



Try my 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?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2015-11-28 02:20 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (737 votes), past polls