my $text = '0101010101';
my %hash;
@hash{ split '', $text } = 1;
print scalar keys %hash, "\n";
Although this code above will work correctly, it will not be doing so the way that you expected which could lead you to trouble.
@hash{@array} = $scalar
only sets $scalar as the value for the first key in %hash.
To set all the keys, you'd want to do something like:
@hash{@array} = ($scalar) x scalar @array;
In the actual code above, since you don't check values anyway, you can just write:
@hash{@array} = ();
|