2017-05-18 7 views
1

여기 내 코드와 출력을 perl을 사용하여 각 행마다 다른 행을 만들 수 없습니다? 여기 perl cgi를 사용하여 내 perl 출력을위한 테이블을 만드는 방법은 무엇입니까?

내 코드입니다 :

use strict; 
    use warnings; 
    use CGI; 
    open(my $file1,"as.txt"); 
    my $firstline=<$file1>; 
    $firstline=~s/.*=//g; 
    my @words=split /,/,$firstline; 
    my $finalline=join("\n",@words); 
    close $file1; 
    print "Content-type:text/html\n\n" 
    print<<"EOF"; 
    <html><body> 
    <table style="width:100%"> 
    <tr> 
    <th>UserName</th> 
    <th>Access</th> 
    </tr> 
    <tr> 
    <td>$finalline</td> 
    <td> 
    <input type="checkbox" value="check2" mulitple checked>Read 
    <input type="checkbox" value="check2" mulitple>Write 
    <input type="checkbox" value="check2" mulitple>Owner 
    </td> 
    </tr> 
    </table></body></html> 
    EOF 

PERL (IE $의 finalline) sankar에 대한 나의 OUTPUT morien3

내가 가지고 테이블 형식으로 내 출력으로 다음의 표 :

UserName Access 
sankar morien3 Read Write Owner 

예상 출력 :

UserName Access 
sankar Read Write Owner 
morien3 Read Write Owner 

입력 파일 : (즉 as.txt)

cskTeam = sankar, mobrien3 
[csk:/] 

* = r 
@cskTeam = rw 
+0

입력 파일을 추가하십시오. – mkHun

+0

님이 입력 파일을 추가했습니다. @ mkHun –

+0

귀하의 질문에 대한 답변이 추가되었습니다. – mkHun

답변

0

당신은 HTML 레이아웃이 어떻게 작동하는지에 대해 알고 있어야합니다.

코드조차도 예상 한 결과를 터미널에 제공하지 않습니다.

html \n에서 의미가 없으므로 <br>은 html로 된 새 라인입니다. 그러나이 논리는 또한 코드에서 작동하지 않습니다.

배열을 \n과 결합한 다음 데이터를 인쇄하면 언급 한대로 행이 주석을 실행할 것입니다. 이 결과 때문에

먼저 당신이 $finalline 변수를 인쇄 한 것은 HTML로 간주하지 않습니다 n \

sankar \n morien3 

입니다. <td>

다음과 같이 하나의 셀에 저장합니다. 그런 다음 권한 세부 정보를 보유하고있는 다른 셀을 만듭니다.

마지막으로 코드는 다음과 같아야합니다.

#!/usr/bin/perl 
use warnings; 
use strict; 
use CGI; 

use CGI::Carp qw(fatalsToBrowser); 

print "Content-Type: text/html \n\n"; 


open my $file1,"<","as.txt"; 
my $firstline=<$file1>; 
$firstline=~s/.*=//g; 
my @words=split /,/,$firstline; 
close $file1; 


print<<"EOF"; 
<html><body> 
<table style="width:50%; "> 
<tr> 
<th style="text-align:left">UserName</th> 
<th style="text-align:left">Access</th> 
</tr> 
EOF 
foreach (@words) 
{ 
print <<EOF; 
<tr> 
<td>$_</td> 
<td> 
<input type="checkbox" value="check2" mulitple checked>Read 
<input type="checkbox" value="check2" mulitple>Write 
<input type="checkbox" value="check2" mulitple>Owner 
</td> 
</tr> 
EOF 
} 
print <<EOF; 
</table></body></html> 
EOF 
+0

스크립트가 두 행에 같은 행을 인쇄합니다. 예상 출력 @ mkhun처럼 인쇄되지 않습니다. –

+0

이제 실행됩니다. @ mkhun –

+0

@srvvani [this] (http : //)와 같은 Perl-cgi 스크립트를 배우고 코딩하십시오. perldoc.perl.org/CGI.html) 코드에 [fataltobrowser] (http://perldoc.perl.org/CGI/Carp.html)도 추가하십시오. – mkHun