Как вы печатаете шестнадцатеричные цифры в строку Perl? - PullRequest
2 голосов
/ 03 декабря 2009

У меня есть три целых числа:

($r, $g, $b) = (255, 128, 0);

Я хотел бы напечатать строку вроде:

"#FF8000"

с использованием этих переменных.

Как мне это сделать?

Ответы [ 2 ]

11 голосов
/ 03 декабря 2009
my $rgb = sprintf '#%02X%02X%02X', $r, $g, $b;

См. sprintf и printf .

3 голосов
/ 03 декабря 2009

Вы можете использовать pack и unpack, чтобы получить шестнадцатеричную строку.

my $rgb = '#' . uc unpack 'H6', pack 'C3', $r, $g, $b;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...