Newbie Perl question - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Newbie Perl question

dbrandtdbrandt Posts: 43Member
I am writing a simple script that asks a user for a sentence, and 3 strings to find within the sentence. Here is the code:

[code]
print "input a sentence:";
$mySentence = ;

for $i( 0 .. 2 )
{
print "input search number";
print $i;
print ": ";
$mySearch[$i] = ;
}

for $h( @mySearch )
{
if ( $mySentence =~ m/.*$h.*/ )
{
print $h . " was found
";
}
else
{
print $h . " was NOT found
";
}
}
[/code]

The problem is that the script always says that the string wasn't found. A little help?

Edit: Could you also tell me how to get the
[code]print $h . "was found
"[/code]
part to output on one line? Thanks.

Comments

  • JonathanJonathan Posts: 2,914Member
    Hi,

    Your two problems are related. :-) The thing is that when you use the diamond operator:

    $mySearch[$i] = ;

    Then it leaves a newline character on the end of what you read in. So to fix that do (after this statement):

    chomp $mySearch[$i];

    And that should solve both your problems.

    Also:

    : if ( $mySentence =~ m/.*$h.*/ )
    It's not broken as such, but this also would work:
    if ( $mySentence =~ m/$h/ )

    Jonathan
    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
Sign In or Register to comment.