Well, if anyone is interested, my first day at Sun's Perl Class went pretty well.
However, I do have a couple of questions that came up during the course of the day.
I'm hoping someone can clarify.
1) Okay, with array slices...they give you an example of doing this:
($f[0], $f[1], $f[2]) = @array
(are the parentheses correct with this? I'm doing the example from memory)
Why can't you do this:
($f[0..2]) = @array
I tried it and it didn't work (obviously), but I was curious as to the reason why.
2) With a hash, does the "key" part of the hash have to be a string, or can it be a
number?
3) Why can you do this:
print "$foo";
or this
print "@bar";
but not this
print "%foobar";
I am actually enjoying the class so far, it's definitely what I needed to get kick
started in Perl (I just don't have the time to read all my O'Reilly books on my own).
Of course, I'm sure the Stonehenge Training would be better, but they have to set up
shop in Chicago ;p
Thanks,
Tom
#!/usr/bin/perl -w
# 526-byte qrpff, Keith Winstein and Marc Horowitz <[EMAIL PROTECTED]>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval