0
我正在使用Net :: Twitter :: Lite,我想用斜體部分發布文本。我知道這是可能的Unicode:http://mothereff.in/twitalics有Java腳本代碼,但我不明白。有沒有一些Perl代碼可以做到這一點?或者可以有人解釋JavaScript的功能,以便我可以在Perl中執行相同的操作。在Perl中張貼斜體到twitter
我正在使用Net :: Twitter :: Lite,我想用斜體部分發布文本。我知道這是可能的Unicode:http://mothereff.in/twitalics有Java腳本代碼,但我不明白。有沒有一些Perl代碼可以做到這一點?或者可以有人解釋JavaScript的功能,以便我可以在Perl中執行相同的操作。在Perl中張貼斜體到twitter
該程序將字符串轉換爲斜體,使用Unicode字符作爲數學符號。
#!/usr/bin/perl -CS
use strict;
use warnings;
use 5.010;
use charnames ':full';
my $out;
foreach (@ARGV) {
foreach my $char (split //) {
if ($char =~ /[A-Z]/) {
my $charname = "MATHEMATICAL ITALIC CAPITAL $char";
$char = charnames::string_vianame $charname;
} elsif ($char =~ /[a-z]/) {
my $charname = 'MATHEMATICAL ITALIC SMALL ' . uc $char;
$char = charnames::string_vianame $charname;
}
$out .= $char;
}
}
say $out;
如果你有一箇舊版本的Perl,您可以使用以下命令:
#!/usr/bin/perl
binmode(STDOUT, ":utf8");
$output="";
foreach (@ARGV)
{
foreach $char (split //)
{
if ($char =~ /[A-Z]/) {$d=119860-65+ord($char); $char = pack("U",$d)}
if ($char =~ /h/) {$char="\x{210e}"}
if ($char =~ /[a-z]/) {$d=119886-97+ord($char); $char = pack("U",$d)}
$output .= $char;
}
}
print "$output\n";
謝謝!我的Perl抱怨:無法通過utf-italics.pl第17行的包「charnames」找到對象方法「string_vianame」。 –
看起來這個函數是在Perl 5.14中添加的。請參閱https://metacpan.org/module/JESSE/perl-5.14.0/pod/perldelta.pod#N-NAME-and-charnames-enhancements –
我現在有一個可用的Perl並獲得斜體,但是,我的Perl 5.16似乎不喜歡「h」:它表示:「在串聯(。)中使用未初始化的值$ char或在utf-test.pl第19行使用字符串。」 –