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!
Back to
Seekers of Perl Wisdom