use warnings; use strict; this(arg => 0); sub this { my %args = @_; do_something("if\n") if $args{arg}; do_something("if def\n") if defined $args{arg}; } sub do_something{ print shift; }