#!/usr/bin/perl use warnings; use strict; use feature qw{ say fc }; *ARGV = *DATA{IO}; my $column_line = ""; $column_line = <> while $column_line !~ /Invoice ID/i; chomp( my @columns = split /\t/, $column_line ); chomp( my @data_lines = <> ); # Sort the data lines according to the "Company Name" field, and then +the "Invoice ID" field. my ($company_name_index) = grep { $columns[$_] eq "Company Name" } 0 . +. $#columns; my ($invoice_ID_index) = grep { $columns[$_] eq "Invoice ID" } 0 .. $# +columns; @data_lines = sort { my ($company_name_a, $invoice_ID_a) = (split /\t/, $a)[$company_na +me_index, $invoice_ID_index]; my ($company_name_b, $invoice_ID_b) = (split /\t/, $b)[$company_na +me_index, $invoice_ID_index]; fc($company_name_a) cmp fc($company_name_b) or $invoice_ID_a <=> $invoice_ID_b } @data_lines; print "Replacement Header Text Here\n\n$column_line"; say for @data_lines; __DATA__ Original Header Text Invoice ID Company Name 1 SEBASTIAN COMMUNICATIONS 2 MASQUE SOUND 3 SEALEVEL SYSTEMS 4 MASSTECH, INC 5 SE INTERNATIONAL 6 SOUTHEAST SERVO, LLC 7 SEALEVEL SYSTEMS, INC. 8 MASTERBILT
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
In reply to Re^3: Sorting an array of strings when some of the strings have commas in them?
by choroba
in thread Sorting an array of strings when some of the strings have commas in them?
by perldigious
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |