#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11109362 use warnings; my %suffix = qw( K 3 M 6 G 9 T 12 ); while( <DATA> ) { print s/(\S+)([TGMK])\s+(\S+)([TGMK])\K/ ' ' . ("$1e$suffix{$2}" - "$3e$suffix{$4}") /er =~ s/((000){1,4})$/ +{reverse %suffix}->{length $1} /er; } __DATA__ 324K 324K 440K 533K 23T 224G 42G 42G 1.9T 709G 294K 294K 684K 684K 492K 492K 62M 64M 48K 41M 34M 433K 317K 812K
Outputs:
324K 324K 0 440K 533K -93K 23T 224G 22776G 42G 42G 0 1.9T 709G 1191G 294K 294K 0 684K 684K 0 492K 492K 0 62M 64M -2M 48K 41M -40952K 34M 433K 33567K 317K 812K -495K
In reply to Re: More elegant way than multiple "if"?
by tybalt89
in thread More elegant way than multiple "if"?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |