Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- $filename = "4.txt";
- open(FILE, $filename);
- @data = <FILE>;
- close(FILE);
- $valid = 0;
- $byr = 0;
- $iyr = 0;
- $eyr = 0;
- $hgt = 0;
- $hcl = 0;
- $ecl = 0;
- $pid = 0;
- $cid = 0;
- foreach $line (@data) {
- if (length($line) < 2) {
- if (($byr == 1)&&($iyr == 1)&&($eyr == 1)&&($hgt == 1)&&($hcl == 1)&&($ecl == 1)&&($pid == 1)) {
- $valid++;
- }
- $byr = 0;
- $iyr = 0;
- $eyr = 0;
- $hgt = 0;
- $hcl = 0;
- $ecl = 0;
- $pid = 0;
- $cid = 0;
- }
- else
- {
- if ($line =~ m/byr:(\d\d\d\d)/) {
- if ($byr == 1) {
- print "DUPLICATE BYR";
- }
- if ((int($1) > 1919)&&(int($1) < 2003)) {
- $byr = 1;
- }
- }
- if ($line =~ m/iyr:(\d\d\d\d)/) {
- if ($iyr == 1) {
- print "DUPLICATE IYR";
- }
- if ((int($1) > 2009)&&(int($1) < 2021)) {
- $iyr = 1;
- }
- }
- if ($line =~ m/eyr:(\d\d\d\d)/) {
- if ($eyr == 1) {
- print "DUPLICATE EYR";
- }
- if ((int($1) > 2019)&&(int($1) < 2031)) {
- $eyr = 1;
- }
- }
- if ($line =~ m/hgt:(\d\din|\d\d\dcm)/) {
- if ($hgt == 1) {
- print "DUPLICATE HGT";
- }
- $valdata = $1;
- $valdata =~ s/(cm|in)$//;
- if (((int($valdata) > 149)&&(int($valdata) < 194)) || ((int($valdata) > 58)&&(int($valdata) < 77))) {
- $hgt = 1;
- }
- }
- if ($line =~ m/hcl:#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]( |\n)/) {
- if ($hcl == 1) {
- print "DUPLICATE HCL";
- }
- $hcl = 1;
- }
- if ($line =~ m/ecl:(amb|blu|brn|gry|grn|hzl|oth)/) {
- if ($ecl == 1) {
- print "DUPLICATE ECL";
- }
- $ecl = 1;
- }
- if ($line =~ m/pid:\d\d\d\d\d\d\d\d\d( |\n)/) {
- if ($pid == 1) {
- print "DUPLICATE PID";
- }
- $pid = 1;
- }
- if ($line =~ m/cid:/) {
- if ($cid == 1) {
- print "DUPLICATE CID";
- }
- $cid = 1;
- }
- }
- }
- print "VALID: $valid\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement