use Class::Struct File => { name => '$', }; use Class::Struct Directory => { name => '$', children => '@', # An array of File and Directory objects. };