tonto has asked for the wisdom of the Perl Monks concerning the following question:
I am trying to renumber an array. I want the duplicated values in the original array to have the same new values in the renumbered array, and the first value should be changed to 1 and the next to 3 and so on, using odd numbers. The order of the array must be preserved. Here is my code:
Thank you for reading!
The output I am getting is (1,3,5,7,9,11,13) What I want is (1,3,5,3,7,7,9) Where have I gone wrong, please?#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @array = ("M94202", "M94150", "M94297", "M94150", "M94161", "M94161 +", "M94162"); my $z = 1; foreach my $item (@array) { if ($item =~ m/M/g) { my $uniqitem = $item; foreach $uniqitem (@array) { $uniqitem =~ s/$uniqitem/$z/g; $z = $z +2; } } } print Dumper \@array; print "\n";
Thank you for reading!
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Replacing values in an array
by toolic (Bishop) on Jan 26, 2013 at 23:07 UTC | |
by tonto (Friar) on Jan 26, 2013 at 23:23 UTC | |
Re: Replacing values in an array
by BrowserUk (Patriarch) on Jan 26, 2013 at 23:43 UTC | |
by eyepopslikeamosquito (Archbishop) on Jan 27, 2013 at 01:31 UTC | |
by tonto (Friar) on Jan 26, 2013 at 23:54 UTC | |
by muba (Priest) on Jan 27, 2013 at 05:37 UTC | |
Re: Replacing values in an array
by eyepopslikeamosquito (Archbishop) on Jan 26, 2013 at 23:26 UTC | |
by tonto (Friar) on Jan 26, 2013 at 23:43 UTC | |
by muba (Priest) on Jan 27, 2013 at 05:17 UTC | |
Re: Replacing values in an array
by johngg (Canon) on Jan 27, 2013 at 00:05 UTC |
Back to
Seekers of Perl Wisdom