Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
doc
/
perl-SOAP-WSDL-examples
/
example
/
visitor
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
visitor.pl
551 B
-rw-r--r--
2014-08-20 12:34:40
Edit
Del
Editing: visitor.pl
(551 B)
Path: /usr/share/doc/perl-SOAP-WSDL-examples/example/visitor/visitor.pl
Back
package PersonVisitor; use Class::Std; # handles all basic stuff like constructors etc. sub visit_Person { my ( $self, $object ) = @_; print "Person name is ", $object->get_name(), "\n"; } package Person; use Class::Std; my %name : ATTR(:name<name> :default<anonymous>); sub accept { $_[1]->visit_Person( $_[0] ) } package main; my @person_from = (); for (qw(Gamma Helm Johnson Vlissides)) { push @person_from, Person->new( { name => $_ } ); } my $visitor = PersonVisitor->new(); for (@person_from) { $_->accept($visitor); }