http://qs321.pair.com?node_id=11123271


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 11123269.pl line 11, near "struct Carrier_Info" Execution of 11123269.pl 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.


🦛

Replies are listed 'Best First'.
Re^2: Can't write values from sorted array of structs
by tobyink (Canon) on Oct 29, 2020 at 03:13 UTC

    "This seems reasonable because the documentation suggests that the arguments to struct should be within brackets."

    The parentheses aren't important. OP puts use Class::Struct before the package statement, so the struct function is being imported into main instead of into Carrier_Info.