У меня есть три целых числа:
($r, $g, $b) = (255, 128, 0);
Я хотел бы напечатать строку вроде:
"#FF8000"
с использованием этих переменных.
Как мне это сделать?
my $rgb = sprintf '#%02X%02X%02X', $r, $g, $b;
См. sprintf и printf .
Вы можете использовать pack и unpack, чтобы получить шестнадцатеричную строку.
pack
unpack
my $rgb = '#' . uc unpack 'H6', pack 'C3', $r, $g, $b;