#!/usr/bin/perl use warnings; use strict; use feature qw{ say fc }; my $company_name_index = 0; my $invoice_ID_index = 1; say for sort { my ($company_name_a, $invoice_ID_a) = (split /\t/, $a)[$company_name_index, $invoice_ID_index]; my ($company_name_b, $invoice_ID_b) = (split /\t/, $b)[$company_name_index, $invoice_ID_index]; fc($company_name_a) cmp fc($company_name_b) or $invoice_ID_a <=> $invoice_ID_b } map "$_\t" . rand, ( 'SEALEVEL SYSTEMS', 'SEALEVEL SYSTEMS, INC.', 'SEBASTIAN COMMUNICATIONS', 'MASQUE SOUND', 'MASSTECH, INC', 'MASTERBILT', 'SE INTERNATIONAL', );