| Data-Define documentation | Contained in the Data-Define distribution. |
Data::Define - Make undef's defined
use Data::Define; print define undef; # prints '' use Data::Define qw/ brockets /; print define undef; # prints '<undef>'; use Data::Define qw/ define_html brockets /; print define_html undef; # prints '<undef>'; use Data::Define qw/ define_html div-class-undef /; print define_html undef; # prints '<undef>';
Data::Define
This method takes one parameter and returns it defined even if it was not defined primordially.
This method is exported by default.
Default return value is ''. If you asked to export 'brockets' using Data::Define, return value becomes '<undef>'. You can specify your own default value using Data::Define->set_undef_value.
This method works exactly the same as 'define', but when exporting 'brockets', return value becomes '<undef*gt;', so you can send it to HTML browser without need to escape.
Additionally, you can ask to export 'div-class-undef', then return value will be '<div class="undef"></div>'.
You can specify your own default value using Data::Define->set_undef_value_html.
This method allows you to specify your own default value for define.
Usage is Data::Define->set_undef_value( $value ).
If $value is not defined, default value ('', or '<undef>' if 'brockets' is exported) is used.
This method allows you to specify your own default value for define_html.
Usage is Data::Define->set_undef_value_html( $value ).
If $value is not defined, default value ('', or '<undef>' if 'brockets' is exported, or '<div class="undef"></div>' if 'div-class-undef' is exported) is used.
Serguei Trouchelle <stro@railways.dp.ua>
Copyright (c) 2006 Serguei Trouchelle. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Data-Define documentation | Contained in the Data-Define distribution. |
# Data/Define.pm # # Copyright (c) 2006 Serguei Trouchelle. All rights reserved. # # This program is free software; you can redistribute it and/or modify it # under the same terms as Perl itself. # History: # 1.03 2007/02/04 Quality update (Test::Pod, Test::Pod::Coverage, eg) # 1.02 2006/11/02 Dist fixed # 1.01 2006/09/07 Initial revision
package Data::Define; require Exporter; use Config; use strict; use warnings; our @EXPORT = qw/ define /; our @EXPORT_OK = qw/ define_html div-class-undef brockets /; our %EXPORT_TAGS = (); our @ISA = qw/Exporter/; $Data::Define::VERSION = "1.03"; our $UNDEFVALUE = ''; our $UNDEFVALUEHTML = ''; our $DEFAULT_UNDEFVALUE = ''; our $DEFAULT_UNDEFVALUEHTML = ''; sub define { my $val = shift; return defined $val ? $val : $UNDEFVALUE; } sub define_html { my $val = shift; return defined $val ? $val : $UNDEFVALUEHTML; } sub set_undef_value { my $self = shift; $UNDEFVALUE = shift; $UNDEFVALUE = $DEFAULT_UNDEFVALUE unless defined $UNDEFVALUE; } sub set_undef_value_html { my $self = shift; $UNDEFVALUEHTML = shift; $UNDEFVALUEHTML = $DEFAULT_UNDEFVALUEHTML unless defined $UNDEFVALUEHTML; } sub import { my $pkg = shift; my %routines; my @name; if (@name = grep m/^name=/, @_) { my $n = (split(/=/,$name[0]))[1]; @_ = grep !/^name=/, @_; } grep $routines{$_}++, @_, @EXPORT ; if ($routines{'brockets'}) { $UNDEFVALUEHTML = '<undef>'; $UNDEFVALUE = '<undef>'; $DEFAULT_UNDEFVALUE = '<undef>'; $DEFAULT_UNDEFVALUEHTML = '<undef>'; # for set_undef_value with undefined param } if ($routines{'div-class-undef'}) { $UNDEFVALUEHTML = '<div class="undef"></div>'; $DEFAULT_UNDEFVALUEHTML = '<div class="undef"></div>'; # for set_undef_value_html with undefined param } my $oldlevel = $Exporter::ExportLevel; $Exporter::ExportLevel = 1; Exporter::import($pkg, keys %routines); $Exporter::ExportLevel = $oldlevel; } 1;