मेरे पास एफसीजीआई मोड में पर्ल के कहने के फ़ंक्शन के साथ एक अजीब व्यवहार है। न्यूलाइन संलग्न नहीं होंगे। ऐसा क्यों होता है?पर्ल ने क्यों कहा() एफसीजीआई मोड में नई लाइन को शामिल नहीं किया?
नमूना कोड:
#!/usr/bin/perl -wT
use strict;
use warnings;
use utf8;
use feature qw(say);
use FCGI();
use CGI qw(header);
my $cnt = 0;
my $req = FCGI::Request();
while ($req->Accept() >= 0) {
$cnt++;
print header(-type => 'text/plain', -charset => 'utf-8');
say "Hello, world #$cnt";
print "\n";
print "$$\n"
print 'Test 1234';
}
अपेक्षित परिणाम (और कंसोल के माध्यम से वास्तविक परिणाम):
Content-Type: text/plain; charset=utf-8
Hello, world. #1
6712
Test 1234
अपाचे/FCGI के माध्यम से वास्तविक परिणाम:
Content-Type: text/plain; charset=utf-8
Hello, world. #3
6709
Test 1234
कुछ सॉफ्टवेयर की जानकारी ..
डेबियन खरखरा x86_64 अपाचे/2.2.22-11 mod_fcgid/1: 2.3.6-1.1 पर्ल/5.14.2-12 FCGI.pm/0.75-1+b1
एक समाधान के लिए मुझे लगता है कि यह कहना सबसे आसान है कि "ऐसा मत करो"। विकल्प एफसीजीआई तय करना है। [Uncift @_, $ \ अगर परिभाषित $ \\ 'के बाद [FCGI.PL के लाइन 264] (https://metacpan.org/source/FLORA/FCGI-0.74/FCGI.PL#L265) चाल चल सकता है । लेकिन एक मौका है कि यह एफसीजीआई के आधार पर बहुत सी कोड तोड़ देगा \ $ का सम्मान नहीं। – pmakholm
आपका मतलब है 'पुश @_, $ \ अगर परिभाषित $ \; ', है ना? –
'सरल' को फिर से कार्यान्वित करने के लिए एक सरल कामकाज होगा: 'subs qw/say/का उपयोग करें; उप कहते हैं {प्रिंट @_, "\ n"}; ' – Zaid