डिफ़ॉल्ट रूप से, एक Win32 वातावरण में perl प्रिंट \ r \ n प्रिंट करता है। मैं इसे कैसे ओवरराइड कर सकता हूं? मैं एक स्रोत में कुछ स्रोत कोड में कुछ बदलाव करने के लिए perl का उपयोग कर रहा हूं, और मैं सभी नए अक्षरों को बदलना नहीं चाहता हूं।मैं Win32 पर पर्ल में सिर्फ एक यूनिक्स न्यूलाइन कैसे प्रिंट कर सकता हूं?
मैंने आउटपुट रिकॉर्ड विभाजक बदलने की कोशिश की लेकिन बिना किसी किस्मत के।
धन्यवाद!
संपादित करें: एक कोड नमूना शामिल करने के लिए चाहता था - मैं एक खोज कर रहा हूँ और कुछ फ़ाइलों है कि इस तरह एक अपेक्षाकृत सरल पैटर्न का पालन अधिक बदल देते हैं:
#!/usr/bin/perl
# test.pl
use strict;
use warnings;
$/ = undef;
$\ = "\n";
$^I=".old~";
while (<>) {
while (s/hello/world/) {
}
print;
}
यह "से किसी उदाहरण बदलना चाहिए नमस्ते cmd लाइन पर पारित किसी भी फाइल के लिए "दुनिया" के साथ।
संपादित करें 2: रूप में किसी भी भाग्य शुरू में बिना सुझाव दिया मैं binmode
की कोशिश की। मैंने कुछ और पाया और पाया कि $^I
(इनस्थल विशेष चर संपादित करें) binmode
ओवरराइड कर रहा था। अभी भी इनस्थल संपादन का उपयोग करने में सक्षम होने के लिए कोई भी काम?
संपादित करें 3: सिनान नीचे बताते हैं के रूप में, मैं अपने उदाहरण में $^I
बजाय binmode STDOUT
साथ binmode ARGVOUT
उपयोग करने के लिए की जरूरत है। धन्यवाद।
यदि आपने आउटपुट रिकॉर्ड विभाजक बदल दिया है, तो यही वह चीज थी जो आप कर सकते हैं। मुझे लगता है कि आपने कुछ और गलती की है (जैसे वास्तव में इनकमिंग लाइनों को सही ढंग से विभाजित नहीं करना, या उन्हें चूमना नहीं)। –
क्या आप कुछ कोड का उदाहरण दे सकते हैं जो प्रिंट नहीं करते हैं \ r \ n' जब आप इसे नहीं चाहते हैं? – Ether
@ शिनान, आप क्यों मानेंगे कि मैं अनिच्छुक हूं ?? मैं अनिच्छुक नहीं हूँ। मेरे पास एक छोटी सी स्क्रिप्ट आसान नहीं है। मेरे पास एक बहुत लंबी, जटिल लिपि है जो शायद बहुत समझ में नहीं आएगी और इससे भी ज्यादा भ्रमित होगा। मैं आज रात बाद एक संक्षिप्त संस्करण बना सकता हूं। मैंने सोचा कि मैं प्रासंगिक भागों सहित था। मुझे पता नहीं था कि उस समय संपादन संपादन प्रासंगिक था। धन्यवाद। –