use strict; use warnings; open my $fh, q{<}, \ <<__EOF__ or die qq{open: < HEREDOC: $!\n}; >>> prd1703 Filesystem Size Used Avail Use% Mounted on /workspace 3.9T 687G 3.2T 18% /workspace/data >>> prd1701 Filesystem Size Used Avail Use% Mounted on /workspace 3.9T 887G 3.0T 13% /workspace/data >>> prd1702 Filesystem Size Used Avail Use% Mounted on /workspace 3.9T 746G 3.1T 23% /workspace/data __EOF__ print for map { unpack q{x4a*}, $_ } sort map { m{(\d+)(?=%)} && ( ~ pack( q{N}, $1 ) . pack( q{a*}, $_ ) ) } do { local $/ = q{}; split m{(?>>)}, <$fh>; }; close $fh or die qq{close: < HEREDOC: $!\n};