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

I'm afraid that your code as supplied doesn't compile for me. Using Class::Struct 0.65 with perl v5.20.3 I see:

syntax error at line 11, near "struct Carrier_Info" Execution of aborted due to compilation errors.

This seems reasonable because the documentation suggests that the arguments to struct should be within brackets. Is this really the code you are running?

Update: here's an SSCCE showing what I think you expect to be output.

#!/usr/bin/env perl use strict; use warnings; package Carrier_Info; use Class::Struct; struct (Carrier_Info => { name => '$', abbrev => '$', }); my $aa = "TH"; my @carriers; push @carriers, Carrier_Info->new(name => "Paul Lalli", abbrev =>"PL") +; push @carriers, Carrier_Info->new(name => "Travis Hervey", abbrev=> $a +a); my $xyz = pop(@carriers); my $ppp = $xyz->name; print "which name is $ppp\n";

I won't claim this is the neatest as I never use Class::Struct directly but hopefully it will serve as an illustration.