>>5
>●初代?
> 製塩方法が、
>  my $change_salt = substr($handle_pass, , 1) . "H";
> となっていたために、$change_salt は 'ripH' に。
> しかし、crypt で有効な塩は、2 文字分(正確には 12 ビット)
> なので、 3 文字目以降は意味を為していない。

my $change_salt = substr($handle_pass, , 1) . "H";
の所なんですけど、
substr の第二引数が省略されてるので、取り出し始めるインデックスが
0(最初)で、取り出す文字数が1文字ってことかと。
そうすると、$change_salt は 'tH' になると思います。
そのスクリプトの方があってればの話ですけど、、