Ваша строка выглядит как шестнадцатеричное представление 16-битного целого числа. Perl может автоматически приводить десятичные строковые представления, но для шестнадцатеричного кода требуется руководство.
Используйте одно из следующего:
my $str = 0x453D; # for a constant
my $str = hex '453D'; # for a variable
Что касается логических ошибок, кажется, что вы немного сдвинетесь с места, прежде чем даже прочитаете его. Возможно, вы захотите поменять обе операции.