$foo = $bar || 'baz'; # is identical to $foo = ( $bar or 'baz'); #### open( $fh, '>', $filename ) or die "Unable to open file: $!"; my $foo = $bar || 'baz'; #### # Original code $self->{'Post'} = ($args{'Post'} or sub {1;}); # High precedence or $self->{'Post'} = $args{'Post'} || sub {1}; # Ternary operator $self->{'Post'} = $args{'Post'} ? $args{'Post') : sub {1}; # Using '||' for a numeric value. $self->{'Number'} = $args{'Number'} || 10; #### foo(); foo(23); foo(0); sub foo { my $number = shift || 10; print "My number is $number\n"; } __END__ #OUTPUT: My number is 10 My number is 23 My number is 10 #### foo(); foo(23); foo(0); sub foo { my $number = shift // 10; print "My number is $number\n"; } __END__ #OUTPUT: My number is 10 My number is 23 My number is 0