first, a comment on the code that you've shown. This:
does not work with the string example that you have provided. In fact, worse than that, $tmp[5] is not defined at this point with the code that you have shown.(undef,$tmp) = split(/=/,$tmp[5]);
Next, I definitely agree with my fellow monks above that using a regex to capture the numerical value between the = sign and the opening square bracket is the simplest solution.
If, however, you want to continue using split, take a look at this possible solution illustrated under the Perl debugger:
Note however that with this solution, the $temperature variable will contain leading space:DB<1> $temp = "BCInletTemperature = 90[C]"; DB<2> (undef,$tmp) = split /=/, $temp; DB<3> print $tmp 90[C] DB<4> temperature = (split /\[/, $tmp)[0]; DB<5> p $temperature 90
which may or may not be a problem for you, depending on what you do afterwards with that variable.DB<6> p "<$temperature>"; < 90>
It is quite easy to get rid of that leading space if needed, but the simplest way is to use a regex. So, why not start with a simple regex anyway?
In reply to Re: how to split a string at [ ?
by Laurent_R
in thread how to split a string at [ ?
by blaui
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |