Where did the slashes go? That would assemble URIs such as http://example.net/appadminjoebobdoc rather than http://example.net/app/admin/joebob/doc.
You also broke down on my ornery $is_admin_link requirements. First of all the clause is the wrong way around, it would have to be ( $is_admin_link && $admin ) – but since $is_admin_link is always 0 or 1, that would leave spurious zeroes in the output, so you need to boolify: ( !! $is_admin_link and $admin ).
All things considered, we get this:
my $part = (
'http://example.net/app'
. ( !! $is_admin_link && '/' . $admin )
. ( defined $subsite && '/' . $subsite )
. '/' . $mode
. ( defined $id && '/' . $id )
. ( defined $submode && '/' . $submode )
);
I definitely feel like a broken record now.
Not to mention that all of this misses my point because it’s specific to join, and I’ve needed to pass a variable list to some function or method often enough where really needed the sub-list to be empty depending on the condition – winging it by combining && and the false evaluates to the empty string factoid wouldn’t have done me any good.
Makeshifts last the longest. |