Thanks for reading this. I'm having difficulty with a simple substitution that I want to occur only once. I've RTFM'd (Cookbook) but can't find the exact solution.
Let's see what silly things I've done.(The following code is stripped down for time/space convenience)
#!/usr/bin/perl -Tw
use strict;
$result = "43 P"; #comes from somewhere else in the program
interpret_clock($result);
sub interpret_clock {
$_[0] =~ s/43 F/Tunnel 1\/2 Hr FT/o;
$_[0] =~ s/43 P/Tunnel 1\/2 Hr PT/o;
$_[0] =~ s/45 F/Tunnel No Lunch FT/o;
$_[0] =~ s/45 P/Tunnel No Lunch PT/o;
$_[0] =~ s/F/Full Time No Clock/o;
$_[0] =~ s/O/On Call No Clock/o;
$_[0] =~ s/P/Part Time No Clock/o;
$_[0] =~ s/T/Temporary No Clock/o;
}
print $result;
I'd like it to print 'Tunnel 1/2 HR PT'. But what I get is 'Part Time No Clockunnel 1/2 HR PPart Time No Clock'. The substitutions for the single letters matches also. I'd only want them to match exactly on single letter values. I've tried using the match exact {1} but I couldn't get it to work.
Any ideas? Any direction someone could point me to?
peppiv
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|