s///g
regex değişkenini (çok fazla şans olmadan) depolamaya çalışıyorum.Bir değiştirge regex'i (arama/değiştir), qr'ye benzer olarak nasıl değiştirilir //
İşte yapmak istediğimi göstermek için normal bir eşleşme kullanan bir örnek.
my %file_structure = (
header => qr/just another/,
table => qr/perl beginner/,
)
Şimdi bu kullanarak $line =~ $file_structure{'header'}
çağırabilir ve desen eşleşirse o undef
veya true
dönecektir.
Bununla birlikte,'un s/beginner/hacker/g
gibi bir öğeyi içerdiği $line =~ $file_structure{'foo'}
demek istiyorum.
istisnadır: Bunu yapmanın bir başka yolu bir altprogramda ikame saklamaktır '/ x' veya'/ı' yapabilir. Her seferinde aynı yerdeğiştirme bayraklarını kullanmanız veya yapamadığınızda bir çalışma zamanı dizgesi "eval" kullanmanız gerekir. – tchrist
Bu yöntemi kullanmak istiyorsanız, http://stackoverflow.com/questions/392643/how-to-use-a-variable-in-the-replacement-side-of-the-perl-substitution-operator kullanmalısınız Sağ tarafta yakalanan bir ifade içerir. Daha güvenli, her neyse, ve daha genel – jjmerelo