fork(1) download
  1. use warnings;
  2. use strict;
  3.  
  4. my $prev;
  5. while (<DATA>) {
  6. next unless /\S/;
  7. my @numbers = split /,/;
  8. if (defined $prev && $numbers[3] == $prev + 1) {
  9. print '-' . ++$prev;
  10. next;
  11. }
  12. print "\n" if defined $prev;
  13. print join ',', @numbers;
  14. $prev = $numbers[3];
  15. }
  16. __DATA__
  17. -7,6,101,15
  18.  
  19. -7,6,101,16
  20.  
  21. -7,6,101,17
  22.  
  23. -7,6,101,78
  24.  
  25. -7,6,101,79
  26.  
  27. -7,6,101,84
  28.  
  29. -7,6,101,92
  30.  
  31. -7,9,615,49
  32.  
  33. -7,9,615,50
  34.  
  35. -7,10,759,38
  36.  
  37. -7,10,759,39
Success #stdin #stdout 0s 3744KB
stdin
Standard input is empty
stdout
-7,6,101,15-16-17
-7,6,101,78-79
-7,6,101,84
-7,6,101,92
-7,9,615,49-50
-7,10,759,38-39