in reply to Can't write values from sorted array of structs

This is your biggest issue:

use Class::Struct; package Carrier_Info;

You want:

package Carrier_Info; use Class::Struct;

Why? Because the struct "keyword" isn't a keyword in the sense of the Perl keyword API; it's not lexically scoped. It's a sub exported to a package, and by importing it before your package statement, you're exporting it outside your package (probably into main) instead of into your package.

Better yet, leave the package Carrier_Info; part out entirely. It's not needed, and seems to suggest you think you need to define the Carrier_Info package yourself; the whole point of using Class::Struct is to allow it to define the Carrier_Info package for you!

Lesser issue (because while it stops your code from working, it's not a syntax error), but still an issue:

my $ppp = $xyz->{name};

You want:

my $ppp = $xyz->name;