h8rt3rmin8r

symgen.pl

Oct 5th, 2019
591
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! /usr/bin/perl
  2. #------------------------------------------------------------------------------#
  3. #
  4. # [ SYMGEN ]
  5. #
  6. #    About:     Print symbol combinations to STDOUT
  7. #    Created:   20191005
  8. #    Author:    h8rt3rmin8r
  9. #    Source:    https://pastebin.com/raw/5rcPG1ZU
  10. #
  11. # USAGE:
  12. #
  13. #    perl symgen.pl
  14. #    perl symgen.pl <NUMBER>
  15. #
  16. #    where "NUMBER" is a single digit between 1-9
  17. #
  18. #------------------------------------------------------------------------------#
  19.  
  20. ## Module selection
  21. #use strict;
  22. #use warnings;
  23. use open ':encoding(UTF-8)';
  24.  
  25. ## "@c" == ( 32 punctuation symbols ) == ( <>`*&@\{},:-=!/|#()%.+'"?[];~^_$ )
  26. my @c=(
  27.     "\N{U+003C}","\N{U+003E}","\N{U+0060}","\N{U+002A}","\N{U+0026}",
  28.     "\N{U+0040}","\N{U+005C}","\N{U+007B}","\N{U+007D}","\N{U+002C}",
  29.     "\N{U+003A}","\N{U+002D}","\N{U+003D}","\N{U+0021}","\N{U+002F}",
  30.     "\N{U+007C}","\N{U+0023}","\N{U+0028}","\N{U+0029}","\N{U+0025}",
  31.     "\N{U+002E}","\N{U+002B}","\N{U+0027}","\N{U+0022}","\N{U+003F}",
  32.     "\N{U+005B}","\N{U+005D}","\N{U+003B}","\N{U+007E}","\N{U+005E}",
  33.     "\N{U+005F}","\N{U+0024}"
  34. );
  35.  
  36. my $i_len = $ARGV[0];
  37.  
  38. if (not defined $i_len) {
  39.     print "\r[$0] Enter a number of permutations (1-9): ";
  40.     my $x_len = <STDIN>;
  41.     $i_len = $x_len
  42. }
  43.  
  44. if ($i_len =~ /^1/){
  45.     for $a (@c){
  46.         print "$a\n"
  47.     };
  48. }
  49. elsif ($i_len =~ /^2/){
  50.     for $a (@c){
  51.         for $b(@c){
  52.             print "$a$b\n"
  53.         }
  54.     };
  55. }
  56. elsif ($i_len =~ /^3/){
  57.     for $a (@c){
  58.         for $b(@c){
  59.             for $c(@c){
  60.                 print "$a$b$c\n"
  61.             }
  62.         }
  63.     };
  64. }
  65. elsif ($i_len =~ /^4/){
  66.     for $a (@c){
  67.         for $b(@c){
  68.             for $c(@c){
  69.                 for $d(@c){
  70.                     print "$a$b$c$d\n"
  71.                 }
  72.             }
  73.         }
  74.     };
  75. }
  76. elsif ($i_len =~ /^5/){
  77.     for $a (@c){
  78.         for $b(@c){
  79.             for $c(@c){
  80.                 for $d(@c){
  81.                     for $e(@c){
  82.                         print "$a$b$c$d$e\n"
  83.                     }
  84.                 }
  85.             }
  86.         }
  87.     };
  88. }
  89. elsif ($i_len =~ /^6/){
  90.     for $a (@c){
  91.         for $b(@c){
  92.             for $c(@c){
  93.                 for $d(@c){
  94.                     for $e(@c){
  95.                         for $f(@c){
  96.                             print "$a$b$c$d$e$f\n"
  97.                         }
  98.                     }
  99.                 }
  100.             }
  101.         }
  102.     };
  103. }
  104. elsif ($i_len =~ /^7/){
  105.     for $a (@c){
  106.         for $b(@c){
  107.             for $c(@c){
  108.                 for $d(@c){
  109.                     for $e(@c){
  110.                         for $f(@c){
  111.                             for $g(@c){
  112.                                 print "$a$b$c$d$e$f$g\n"
  113.                             }
  114.                         }
  115.                     }
  116.                 }
  117.             }
  118.         }
  119.     };
  120. }
  121. elsif ($i_len =~ /^8/){
  122.     for $a (@c){
  123.         for $b(@c){
  124.             for $c(@c){
  125.                 for $d(@c){
  126.                     for $e(@c){
  127.                         for $f(@c){
  128.                             for $g(@c){
  129.                                 for $h(@c){
  130.                                     print "$a$b$c$d$e$f$g$h\n"
  131.                                 }
  132.                             }
  133.                         }
  134.                     }
  135.                 }
  136.             }
  137.         }
  138.     };
  139. }
  140. elsif ($i_len =~ /^9/){
  141.     for $a (@c){
  142.         for $b(@c){
  143.             for $c(@c){
  144.                 for $d(@c){
  145.                     for $e(@c){
  146.                         for $f(@c){
  147.                             for $g(@c){
  148.                                 for $h(@c){
  149.                                     for $i(@c){
  150.                                         print "$a$b$c$d$e$f$g$h$i\n"
  151.                                     }
  152.                                 }
  153.                             }
  154.                         }
  155.                     }
  156.                 }
  157.             }
  158.         }
  159.     };
  160. }
  161. else{
  162.     print "[$0] Unknown input parameter\n";
  163.     exit;
  164. }
RAW Paste Data