Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Completely Useless

by btrott (Parson)
on Aug 12, 2000 at 04:07 UTC ( #27590=snippet: print w/ replies, xml ) Need Help??

Description: So this is probably the most useless module ever, but I thought it was kind of fun, because... I don't know. I like writing things that seem like English but are actually Perl, I guess.

Usage:

use Silly::Die; EXPR or die trying;
Where EXPR is, of course, an expression. For example:
open FILE, "foo" or die trying;

    package Silly::Die;

    sub import {
        my $class  = shift;
        my $caller = caller;
        no strict 'refs';
        *{"${caller}::trying"} = \&{"${class}::trying"};
    }

    sub trying { $! }

    1;

Comment on Completely Useless
Download Code
RE: Completely Useless
by mwp (Hermit) on Aug 12, 2000 at 04:30 UTC
    bond@russia:~$ perl -I/usr/local/lib/m4 \ -MSecret::Agent -e 'save->world()' died trying at line 007 (eval 1).

    I guess he forgot the -w flag.

RE: Completely Useless
by btrott (Parson) on Aug 12, 2000 at 05:45 UTC
    Hey, you know what'd be neat? To customize the error message. Sure, it's still just as useless, but that's okay. So here's the new version:
    package Silly::Die; use strict; use vars qw/$OUTPUT/; sub import { my $class = shift; my $caller = caller; no strict 'refs'; *{"${caller}::trying"} = \&{"${class}::trying"}; $OUTPUT = shift if @_ && ref $_[0] eq "CODE"; } sub trying { $OUTPUT ? $OUTPUT->($!) : $! } 1;
    Usage is the same as before, but if you want an extra special output function, try this:
    use Silly::Die sub { qq(I died with: "@_") }; open FILE, "foo" or die trying;
    Prints:
    I died with: "No such file or directory" at ./test.pl line 9.

Back to Snippets Section

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2015-07-07 10:32 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 (88 votes), past polls