in reply to Re^2: rename duplicate data
in thread rename duplicate data

It would help if your code was properly formatted. Anyway, to use 'say' you need to

use v5.10;

for "my $debug" declaration you probably meant

my $debug = $ARGV[1];

'ids' need to be declared as a hash, not a scalar

my %ids;

while loop needs to read from the file handle that you opened instead of checking the truth value of $filename variable which causes infinite loop if $filename is anything other than 0 or empty string

while(<IN>)

'print say' at the end doesn't really do any good