Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

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

by Intrepid (Curate)
on Sep 03, 2003 at 06:09 UTC ( [id://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)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2025-07-15 13:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.