vercmp.pl 552 B

123456789101112131415161718192021222324
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. if(@ARGV < 3) {
  5. exit 1;
  6. }
  7. my @afirst = split(/\./, $ARGV[0]);
  8. my $op = $ARGV[1];
  9. my @asecond = split(/\./, $ARGV[2]);
  10. push(@afirst, 0) while(@afirst < @asecond);
  11. push(@asecond, 0) while(@asecond < @afirst);
  12. my $v1 = 0;
  13. my $v2 = 0;
  14. map { ($v1 *= 100) += $_ } (@afirst);
  15. map { ($v2 *= 100) += $_ } (@asecond);
  16. print "1" if $v1 > $v2 && $op eq "gt";
  17. print "1" if $v1 < $v2 && $op eq "lt";
  18. print "1" if $v1 >= $v2 && $op eq "ge";
  19. print "1" if $v1 <= $v2 && $op eq "le";
  20. print "1" if $v1 == $v2 && $op eq "eq";