You can use the rarely used third parameter to split to limit the number of elements extracted from the string:
$s = q[BONDING_MODULE_OPTS='mode=active-backup miimon=100 primary=p6p2 + primary_reselect=1'];; ( $key, $value ) = split '=', $s, 2;; print "<$key> <$value>";; <BONDING_MODULE_OPTS> <'mode=active-backup miimon=100 primary=p6p2 pri +mary_reselect=1'>
Update: If you need to further split the value into a hash then you could do it this way:
$s = q[BONDING_MODULE_OPTS='mode=active-backup miimon=100 primary=p6p2 + primary_reselect=1'];; ( $key, $value ) = split '=', $s, 2;; print "<$key> <$value>";; <BONDING_MODULE_OPTS> <'mode=active-backup miimon=100 primary=p6p2 pri +mary_reselect=1'> $h{$key} = { map{ split '=', $_ } split ' ', substr $value, 1, -1 };; pp %h;; ( "BONDING_MODULE_OPTS", { miimon => 100, mode => "active-backup", primary => "p6p2", primary_reselect => 1, }, )
In reply to Re: Extracting strings around comparision operator
by BrowserUk
in thread Extracting strings around comparision operator
by rahulruns
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |