sub serialise { my( $self, $format ) = @_; if( $format eq 'Storable' ) { require Storable; return freeze $self; } elsif( $format eq 'Data::Dumper' ) { require Data::Dumper; return dump $self; } elsif( ... ) { } ... else { die "Unknown serialisation format: $format"; } } ## Equivalent code for deserialisation.