bash-4.2$ hexdump -C foo.pl 00000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 |#!/usr/bin/env p| 00000010 65 72 6c 0a 0a 24 73 e2 80 8e 63 72 69 70 e2 80 |erl..$s...crip..| 00000020 8e 74 20 3d 20 73 68 69 66 74 3b 0a 24 5f 20 3d |.t = shift;.$_ =| 00000030 20 60 24 5e 58 20 2d 4d 73 74 72 69 63 74 20 2d | `$^X -Mstrict -| 00000040 63 20 24 73 e2 80 8e 63 72 69 70 e2 80 8e 74 20 |c $s...crip...t | 00000050 32 3e 26 31 60 3b 0a 77 68 69 6c 65 20 28 2f 5e |2>&1`;.while (/^| 00000060 47 6c 6f 62 61 6c 20 73 79 6d 62 6f 6c 20 22 28 |Global symbol "(| 00000070 2e 2b 3f 29 22 2f 67 6d 29 20 7b 0a 20 20 20 20 |.+?)"/gm) {. | 00000080 24 6d 79 73 7b 24 31 7d 20 3d 20 31 3b 0a 7d 0a |$mys{$1} = 1;.}.| 00000090 24 6d 79 73 20 3d 20 6a 6f 69 6e 20 27 2c 27 2c |$mys = join ',',| 000000a0 20 6b 65 79 73 20 25 6d 79 73 3b 0a 24 5f 20 3d | keys %mys;.$_ =| 000000b0 20 60 24 5e 58 20 2d 4d 77 61 72 6e 69 6e 67 73 | `$^X -Mwarnings| 000000c0 20 24 73 e2 80 8e 63 72 69 70 e2 80 8e 74 20 32 | $s...crip...t 2| 000000d0 3e 26 31 60 3b 0a 77 68 69 6c 65 20 28 2f 5e 55 |>&1`;.while (/^U| 000000e0 73 65 20 6f 66 20 75 6e 69 6e 69 74 69 61 6c 69 |se of uninitiali| 000000f0 7a 65 64 20 76 61 6c 75 65 20 28 5b 5c 24 5c 25 |zed value ([\$\%| 00000100 5c 40 5d 5c 53 2b 29 2f 67 6d 29 20 7b 0a 20 20 |\@]\S+)/gm) {. | 00000110 20 20 69 66 20 28 73 75 62 73 74 72 28 24 31 2c | if (substr($1,| 00000120 20 30 2c 20 31 29 20 65 71 20 27 24 27 29 20 7b | 0, 1) eq '$') {| 00000130 0a 20 20 20 20 20 20 20 20 24 73 74 75 66 66 20 |. $stuff | 00000140 2e 3d 20 22 24 31 20 3d 20 27 27 3b 5c 6e 22 3b |.= "$1 = '';\n";| 00000150 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 |. } else {. | 00000160 20 20 20 20 20 20 24 73 74 75 66 66 20 2e 3d 20 | $stuff .= | 00000170 22 24 31 20 3d 20 28 29 3b 5c 6e 22 3b 0a 20 20 |"$1 = ();\n";. | 00000180 20 20 7d 0a 7d 0a 70 72 69 6e 74 20 22 75 73 65 | }.}.print "use| 00000190 20 73 74 72 69 63 74 3b 5c 6e 75 73 65 20 77 61 | strict;\nuse wa| 000001a0 72 6e 69 6e 67 73 3b 5c 6e 5c 6e 6d 79 20 28 24 |rnings;\n\nmy ($| 000001b0 6d 79 73 29 3b 20 24 73 74 75 66 66 5c 6e 22 3b |mys); $stuff\n";| 000001c0 0a 73 79 73 74 65 6d 20 22 63 61 74 20 24 73 e2 |.system "cat $s.| 000001d0 80 8e 63 72 69 70 e2 80 8e 74 22 3b 0a |..crip...t";.| 000001dd