in reply to Re^4: surprised to find cannot assign s/../../ to a variable
in thread surprised to find cannot assign s/../../ to a variable

It's not always need substitution, just matched parts will do, sometimes substitution make it simple. for like s/\.^.+$//r just like /(.*?)(?:\.^.*)$/
  • Comment on Re^5: surprised to find cannot assign s/../../ to a variable

Replies are listed 'Best First'.
Re^6: surprised to find cannot assign s/../../ to a variable
by hippo (Archbishop) on Jul 05, 2024 at 15:45 UTC

    m// and s/// are two completely different operators. Do not try to shoehorn them into a single expression like that - you will just be creating less maintainable code. The best solution is not always the one with fewest keystrokes.

    if ($some_condition) { ($foo) = ($bar =~ m/capturing_pattern/); else { ($foo = $bar) =~ s/pattern/replacement/; }

    That should hopefully be unambiguous and more maintainable than the original proposal.


    🦛