4
我目前正試圖做一些基於字符串的操作,試圖加快傳統Perl代碼的一部分。原來的Perl代碼看起來像操縱C中的字符串Perl SVs
my $value = 'abCdE';
my $uc_value = uc($value);
我看Perl的膽量API,似乎我可以用這個實現toUPPER()
但這種工作在一個單個字符在一個時間。我似乎錯過了如何循環支持字符數組,每個字母大寫&然後將它分配到一個新的SV。
任何幫助,非常感謝。
'toUPPER'會以'uc'的方式處理Unicode(和不同的語言環境)嗎?你有沒有確鑿的證據表明一次調用'uc'確實是你的應用程序的瓶頸? (我想它可能會在一個循環中,但我真的懷疑你可以做很多事情來加速它。) –
因此,我做了一個大規模簡化手頭上的大問題,這是造成一個瓶頸&已經在純 - 儘可能多的祕密。問題的關鍵是我的重新實現已經歸結爲一個循環,我需要遍歷一堆字符串(SV),刪除'-'並將所有字符轉換爲大寫。這是在Perl中使用'tr/a-z \ 055/A-Z/d'完成的。在C中迭代遍歷SV中的所有字符似乎更有意義,如果檢測到'-'和'toUPPER()'全部字符,則刪除'-'。我只是沒有線索怎麼做:) – andeyatz