#!/usr/bin/perl -w use strict; my @n = qw(6 4 2 4);$,="\n"; my @o; for (my $i=0;$i < @n;$i++){ push (@o, chr(ord(substr($^X,$i,1))- $n[$i]) );}$_=join(".",@o);s/(.*)/$1./;print $_, "";
Yet another fairly simple signature... :)

Update: I added the s/(.*)/$1./;. Yes, I know about Death to Dot Star!.

Update++: It seems like $^X is quite tricky. The script needs to be set executeable and run ./script.pl or as perl script.pl. $^X will then contain "perl" and thus, the output ends up as j.a.p.h.

_14k4 - perlmonks@poorheart.com (www.poorheart.com)

Replies are listed 'Best First'.
Re: $^X signature
by higle (Chaplain) on Sep 13, 2001 at 20:14 UTC
    The output is fine if you run the script as such:
    $ perl foo.pl j.a.p.h
    But the $^X variable causes it to flub if you run it like this:
    $ ./foo.pl ).k.n.p
    Bummer, man. Otherwise, great use of the rarely-seen "$^X" special variable! ++

    hig
        Perhaps, just perhaps, it's something to do with my Unix setup. I've got a box running HP Unix (blech), with the perl executable in /opt/perl5/bin/.

        On that machine, I wrote this script:
        #!/opt/perl5/bin/perl -w print $^X;
        When I start it using the perl command, it prints perl. When I start it using "./", I get
        /opt/perl5/bin/perl
        Intriguing. Makes me want to research it, just a bit more. I'd ++ you again if I could, just for giving me something to do today! :)

        Update: I looked in O'Reilly's "Learning the Korn Shell", and found the answer. (At least in the Korn shell)when you invoke Perl by using the perl command, the shell searches your $PATH, finds perl in there somewhere, and executes just that command. When you invoke a script using the "./" method, the shell grabs the shebang line, and uses that instead of searching the $PATH first. I guess it's really basic Unix (or Korn shell?) stuff, but it was interesting to figure out!

        higle

      i don't get that problem,

      i'm running perl5.6 on a red hat linux boxen and it tests fine, the only difference being the script must be executable to run:

      # ./foo.pl j.a.p.h
      Do you have seperate versions of perl running in different places? That could cause that behavior (although i'm not certain).

      jynx

Re: $^X signature
by John M. Dlugosz (Monsignor) on Sep 14, 2001 at 09:29 UTC
    I get "=.6.Z.L." as my output.