my @part = ( 'http://example.net/app' );
push @part, 'admin' if $is_admin_link;
push @part, $subsite if defined $subsite;
push @part, $mode;
push @part, $id if defined $id;
push @part, $submode if defined $submode;
my $uri = join '/', @parts;
####
# [updated: originally had `'admin' ? $is_admin_link : ()`]
my @part = (
'http://example.net/app',
( $is_admin_link ? 'admin' : () ),
( defined $subsite ? $subsite : () ),
$mode,
( defined $id ? $id : () ),
( defined $submode ? $submode : () ),
);
my $uri = join '/', @part;
##
##
$a = undef;
print $a ? 'true' : 'false'; # prints 'false'
print $a; # prints '' and warns
$a = 0;
print $a ? 'true' : 'false'; # prints 'false'
print $a; # prints '0'
$a = 'abc';
print $a ? 'true' : 'false'; # prints 'true'
print $a; # prints 'abc'
# whereas
$a = undef;
print !!$a ? 'true' : 'false'; # prints 'false'
print !!$a; # prints '' without warning
$a = 0;
print !!$a ? 'true' : 'false'; # prints 'false'
print !!$a; # prints ''
$a = 'abc';
print !!$a ? 'true' : 'false'; # prints 'true'
print !!$a; # prints 1
##
##
@_ = ( 'a' ) x 4;
print join ':', @_; # prints 'a:a:a:a'
print scalar @_; # prints '4'
##
##
@_ = ( 'a' ) x 1;
print join ':', @_; # prints 'a'
print scalar @_; # prints '1'
@_ = ( 'a' ) x 0;
print join ':', @_; # prints ''
print scalar @_; # prints '0'
##
##
my @part = (
'http://example.net/app',
( 'admin' ) x!! $is_admin_link,
( $subsite ) x!! defined $subsite,
$mode,
( $id ) x!! defined $id,
( $submode ) x!! defined $submode,
);
my $uri = join '/', @parts;