Advertisement
Guest User

Untitled

a guest
Dec 4th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.59 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. $filename = "4.txt";
  4.  
  5. open(FILE, $filename);
  6. @data = <FILE>;
  7. close(FILE);
  8.  
  9. $valid = 0;
  10.  
  11. $byr = 0;
  12. $iyr = 0;
  13. $eyr = 0;
  14. $hgt = 0;
  15. $hcl = 0;
  16. $ecl = 0;
  17. $pid = 0;
  18. $cid = 0;
  19.  
  20. foreach $line (@data) {
  21.  
  22. if (length($line) < 2) {
  23. if (($byr == 1)&&($iyr == 1)&&($eyr == 1)&&($hgt == 1)&&($hcl == 1)&&($ecl == 1)&&($pid == 1)) {
  24. $valid++;
  25. }
  26. $byr = 0;
  27. $iyr = 0;
  28. $eyr = 0;
  29. $hgt = 0;
  30. $hcl = 0;
  31. $ecl = 0;
  32. $pid = 0;
  33. $cid = 0;
  34. }
  35. else
  36. {
  37. if ($line =~ m/byr:(\d\d\d\d)/) {
  38. if ($byr == 1) {
  39. print "DUPLICATE BYR";
  40. }
  41. if ((int($1) > 1919)&&(int($1) < 2003)) {
  42. $byr = 1;
  43. }
  44. }
  45. if ($line =~ m/iyr:(\d\d\d\d)/) {
  46. if ($iyr == 1) {
  47. print "DUPLICATE IYR";
  48. }
  49. if ((int($1) > 2009)&&(int($1) < 2021)) {
  50. $iyr = 1;
  51. }
  52. }
  53. if ($line =~ m/eyr:(\d\d\d\d)/) {
  54. if ($eyr == 1) {
  55. print "DUPLICATE EYR";
  56. }
  57. if ((int($1) > 2019)&&(int($1) < 2031)) {
  58. $eyr = 1;
  59. }
  60. }
  61.  
  62. if ($line =~ m/hgt:(\d\din|\d\d\dcm)/) {
  63. if ($hgt == 1) {
  64. print "DUPLICATE HGT";
  65. }
  66. $valdata = $1;
  67. $valdata =~ s/(cm|in)$//;
  68. if (((int($valdata) > 149)&&(int($valdata) < 194)) || ((int($valdata) > 58)&&(int($valdata) < 77))) {
  69. $hgt = 1;
  70. }
  71. }
  72.  
  73. if ($line =~ m/hcl:#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]( |\n)/) {
  74. if ($hcl == 1) {
  75. print "DUPLICATE HCL";
  76. }
  77. $hcl = 1;
  78. }
  79. if ($line =~ m/ecl:(amb|blu|brn|gry|grn|hzl|oth)/) {
  80. if ($ecl == 1) {
  81. print "DUPLICATE ECL";
  82. }
  83. $ecl = 1;
  84. }
  85. if ($line =~ m/pid:\d\d\d\d\d\d\d\d\d( |\n)/) {
  86. if ($pid == 1) {
  87. print "DUPLICATE PID";
  88. }
  89. $pid = 1;
  90. }
  91. if ($line =~ m/cid:/) {
  92. if ($cid == 1) {
  93. print "DUPLICATE CID";
  94. }
  95. $cid = 1;
  96. }
  97. }
  98.  
  99. }
  100.  
  101. print "VALID: $valid\n";
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement