my @compounds=("C3H8O2", "C6H10O5", "C36H62O31", "C5H16N2", "C10H11N5O6P", "C9H11N3O7P", "C3H9N2O2"); print join("\n", map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, (/C(\d+)/)[0] } grep { $_ =~ /P/} @compounds ),"\n";