Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Regex to compare (if) two strings (Uniquely - I will explain inside)

by kcott (Chancellor)
on Nov 25, 2012 at 03:00 UTC ( #1005458=note: print w/replies, xml ) Need Help??

in reply to Regex to compare (if) two strings (Uniquely - I will explain inside)

G'day chickenlips,

Here's a solution using index and splice. (Obviously, you'll need to use your code to generate the random word - I've just allowed entering it from the command line for testing purposes.)

$ perl -Mstrict -Mwarnings -E ' print q{Random word: }; RAND: while (my $randword = <>) { chomp $randword; say "Input words using only letters in: $randword"; INPUT: while (my $inword = <>) { chomp $inword; my @randchars = split q{} => $randword; my $char_count = 0; CHAR: for my $in_char (split q{}, $inword) { ++$char_count; my $pos = index join(q{} => @randchars), $in_char; if ($pos >= 0) { splice @randchars, $pos, 1; } else { say "Failed on char: $in_char (at position $char_count +)"; next INPUT; } } say "$inword OK"; } print q{Random word: }; } print "\n"; '

Here's a sample run:

Random word: qqwe Input words using only letters in: qqwe ew ew OK ewq ewq OK ewqq ewqq OK qewq qewq OK qqewq Failed on char: q (at position 5) qqqwe Failed on char: q (at position 3) Random word: aaaabcde Input words using only letters in: aaaabcde qwe Failed on char: q (at position 1) asd Failed on char: s (at position 2) abcdef Failed on char: f (at position 6) abcde abcde OK aaaab aaaab OK aaaaab Failed on char: a (at position 5) Random word: ^D

-- Ken

Replies are listed 'Best First'.
Re^2: Regex to compare (if) two strings (Uniquely - I will explain inside)
by Zambozo on Nov 30, 2012 at 18:17 UTC

    Label not found for "next INPUT" Why I am getting this error when I make mistake not to put a word that can not be created from the provided letters

      Can you show what you did to get this error? I can't replicate your problem.

      Echoing ++frozenwithjoy's comments, you'll need to show under what circumstances this isn't working for you. Please provide (within <code>...</code> tags) exact input, output and any error or warning messages - details for doing this can be found in: How do I post a question effectively?

      -- Ken

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1005458]
[ovedpo15]: that's the task i was given
[choroba]: for my $element (@array) { $element .= 'hey'; } is a bit more verbose, plus it creates a scope for each element, but doesn't contain $_.
[choroba]: but avoiding $_ makes no sense, it makes it impossible to use grep or map
[choroba]: e.g. @array = map $_ . 'hey", @array;

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2018-03-24 23:27 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (299 votes). Check out past polls.