A simplified version and an equivalent, first-draft Golfed version:

#!/usr/bin/perl -w
use Math::RPN;
$| = 1;
while ($_="@ARGV" || <>) {
   @stack = rpn @stack, split;
   last if @stack && $stack[-1] =~ /^q/i;
   print "@stack ";
   print("\n"),last if @ARGV;
}

#!perl
use Math::RPN;$|=1;1while($_="@ARGV"||<>)&&!((@[EMAIL PROTECTED],split)&&$s[-1]=~/^q/ i||print("@s ")&&@ARGV&&print($/))


Chris

On Thursday, August 14, 2003, at 07:52 AM, Bennett Todd wrote:

I love this list.

Jonathan Paton mentioned Math::RPN; I hadn't heard about that one.
My favourite little handy rpn desktop calculator just got a whole
lot simpler:

        #!/usr/bin/perl -w
        use Math::RPN;

        if (@ARGV) {
            print for rpn map { split } @ARGV;
            print "\n";
            exit 0;
        }

        $| = 1;
        my @stack;
        while (<>) {
            @stack = rpn(@stack, split);
            exit 0 if @stack and $stack[-1] =~ /^q/i;
            print "@stack ";
        }

-Bennett
[EMAIL PROTECTED](P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
<mime-attachment>
--
Chris Dolan, Software Developer, Clotho Advanced Media Inc.
[EMAIL PROTECTED], 294-7900, 211 S Paterson, Madison WI 53703



Reply via email to