免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: skycity0210
打印 上一主题 下一主题

谁能帮我处理如下的文件?(以文件的某一行排序后重组)谢谢了!!  关闭 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
31 [报告]
发表于 2005-11-18 15:15 |只看该作者
楚楚你太 BT 了。
建议你把 php 放一放。
垃圾语言。
不如 Perl。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
32 [报告]
发表于 2005-11-18 15:16 |只看该作者
原帖由 flw 于 2005-11-18 15:15 发表
楚楚你太 BT 了。
建议你把 php 放一放。
垃圾语言。
不如 Perl。


思路开拓一点啊,都是为了解决问题。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
33 [报告]
发表于 2005-11-18 15:17 |只看该作者
原帖由 HonestQiao 于 2005-11-18 15:16 发表


思路开拓一点啊,都是为了解决问题。

sorry,我刚才措辞失当。
不过 php 的确在设计理念上和 Perl 有很大的不同。
请看下面:

  * 参数和返回值极其矛盾
  * PHP对大小写不敏感的操作使用不同的函数
  * PHP的函数命名方式的不一致
  * PHP没有词法范围
  * PHP的主名空间中函数太多
  * PHP缺少抽象令 TIMTOWTDI 走向糟糕的极端
  * 更多信息

[ 本帖最后由 flw 于 2005-11-18 15:20 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
34 [报告]
发表于 2005-11-18 15:21 |只看该作者
参数和返回值极其矛盾

要展示这个问题,下面有一个函数列表,里面的函数用来匹配用户定义的内容:(也许甚至那些用PHP的人才会使用这个文档,只是用来查看该用哪个函数
      匹配      替换使用      大小写不敏感      返回的数字      数组参数      返回匹配      s/m/x标志      偏移(-1=结尾)
ereg      ereg            否      所有      否      数组      无      0
ereg_replace      ereg      字符串      否      所有      否      无      无      0
eregi      ereg            否      所有      否      数组      无      0
eregi_replace      ereg      字符串      否      所有      否      无      无      0
mb_ereg      ereg[1]            否      所有      否      数组      无      0
mb_ereg_replace      ereg[1]      字符串/表达式      否      所有      否      无      有      0
mb_eregi      ereg[1]            否      所有      否      数组      无      0
mb_eregi_replace      ereg[1]      字符串      否      所有      否      无      无      0
preg_match      preg[2]            皆可      一个      否      数组      有      0
preg_match_all      preg            皆可      所有      否      数组      有      0
preg_replace      preg      字符串/表达式      皆可      无/所有      是      无      有      0
str_replace      str      字符串      否      所有      是      数字      无      0
str_ireplace      str      字符串      是      所有      是      数字      无      0
strstr, strchr      str            否      一个      否      子串      无      0
stristr      str            是      一个      否      子串      无      0
strrchr      str            否      一个      否      子串      无      -1
strpos      str            否      一个      否      索引      无      n
stripos      str            是      一个      否      索引      无      n
strrpos      char[3]            否      一个      否      索引      无      n
strripos      str            是      一个      否      索引      无      -1
mb_strpos      str[1]            否      一个      否      索引      无      n
mb_strrpos      str[1]            否      一个      否      索引      无      -1

这种问题还存在在其他的函数组里,不仅仅是匹配的这部分而已。

(在Perl中,所有这些功能都可以通过四个简单的操作符来完成。)

[1] 用于处理多字节字符
[2] PCRE regex: 所谓的“Perl兼容”的正则表达式。
[3] 在PHP5中也是字符串str

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
35 [报告]
发表于 2005-11-18 15:22 |只看该作者
PHP对大小写不敏感的操作使用不同的函数

(这个可能会有两方面的争论。有些人认为提供不同的函数更好,即使这意味着又要记很多名词了)

在Perl中,你可以使用两个lc() 或者是 /i 标志,而PHP通常会提供一个大小写敏感的变量。而且,大小写不敏感的那些版本的函数名的命名方式也不一致。
Perl:      $foo cmp $bar      lc $foo cmp lc $bar
PHP:      strcmp($foo, $bar)      strcasecmp($foo, $bar)
            
Perl:      index($foo, $bar)      index(lc $foo, lc $bar)
PHP:      strpos($foo, $bar)      stripos($foo, $bar)
            
Perl:      $foo =~ s/foo/bar/      $foo =~ s/foo/bar/i
PHP:      $foo = str_replace('foo', 'bar', $foo)      $foo = str_ireplace(...)
PHP:      $foo = ereg_replace('foo', 'bar' ,$foo)      $foo = eregi_replace(...)
PHP的函数命名方式的不一致

  * 大小写不敏感的函数有一个'i'或者'case'在函数名的不同的位置。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
36 [报告]
发表于 2005-11-18 15:23 |只看该作者
* 毫无表现上的规律 有下划线的 和 没下划线的:

下划线          无下划线:

stream_get_line     readline
disk_free_space     diskfreespace
is_object        isset
mcal_day_of_week     jddayofweek
set_error_handler    setlocale
snmp_get_quick_print   snmpget
get_browser       getallheaders
base64_encode      urlencode
image_type_to_mime_type imagetypes
msql_num_fields     mysql_numfields
php_uname        phpversion
strip_tags        stripslashes
bind_textdomain_codeset bindtextdomain
cal_to_jd        gregoriantojd
str_rot13        strpos

   Perl的核心函数名则没有含有下划线的。
  * PHP 有 unlink 、link 和 rename 和系统调用一致,但是 touch 的系统调用是 utime, 不是 touch。
  * 同时你也无法确定单词的顺序:
     o 宾语 动词:base64_decode, iptcparse, str_shuffle, var_dump
     o 动词 宾语:create_function, recode_string

   Perl的核心函数都是“动词 宾语”结构的除了替代的 dbm* 函数。(注意里面的 sys 是一个前缀,而不是一个宾语。同时 flock 和 lstat 是根据系统调用命名的。shm* 和 msg* 是库函数调用)
  * "to" 还是 "2"?

   ascii2ebcdic, bin2hex, deg2rad, ip2long, cal_to_jd (jdto*, *tojd), strtolower, strtotime,

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
37 [报告]
发表于 2005-11-18 15:24 |只看该作者
PHP没有词法范围

Perl 有词法范围和动态范围。PHP则没有。

对于为什么词法范围很重要的解释,可以参考 Coping with Scoping.
      PHP      Perl
超全局(Superglobal)      有      有[1]
全局(global)      有      有
函数局部      有      有
词法域(块局部)      无      有
动态域      无      有

[1] Perl有一些变量总是在main:: 命名空间中。这些类似于PHP的超全局变量。
[2] 在子过程的块中使用一个词法变量,就可以作为一个函数的局部变量。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
38 [报告]
发表于 2005-11-18 15:25 |只看该作者
PHP的主名空间中函数太多

(使用编译了所有核心分发包中的可用扩展的核心库,我们使用了2003年11月发布的版本)

PHP 主要函数的数量:3079 [1]
Perl主要函数的数量:206 [2]

中值PHP 函数名长度:13
平均PHP 函数名长度:13.67
中值Perl函数名长度:6
平均Perl函数名长度:6.22

注意,Perl的一些函数有简短的等价语法:

readpipe('ls -l') ==> `ls -l`
glob('*.txt')   ==> <*.txt>
readline($fh)   ==> <$fh>
quotemeta($foo)  ==> "Q$foo"
lcfirst($foo)   ==> "l$foo" (lc is L)
ucfirst($foo)   ==> "u$foo" (uc is U)

[1] 来源:PHP Quick Reference
[2] 来源:perldoc perlfunc

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
39 [报告]
发表于 2005-11-18 15:26 |只看该作者
Perl 用更少的函数、更简洁的语法,做了更多的事。用户不用再记忆太多的函数。


PHP: (14)
  dbx_escape_string, escapeshellarg, escapeshellcmd, pg_escape_bytea,
  pg_escape_string, pg_unescape_bytea, addslashes, addcslashes, preg_quote,
  quotemeta, mysql_escape_string, mysql_real_escape_string,
  mysqli_real_escape_string, sqlite_escape_string

     o

Perl: (2) [1]
  quotemeta, $dbh->quote

  *

排序:

     o

PHP: (16)
  sort, arsort, asort, krsort, ksort, natsort, natcasesort, rsort, usort,
  array_multisort, uasort, uksort, dbx_sort, imap_sort, ldap_sort, yaz_sort

     o

Perl: (1)
  sort

  *

遍历列表:

     o

PHP: (10)
array_filter, preg_grep, array_search, array_unique, in_array, array_map,
array_walk, array_count_values, array_change_key_case, array_sum

     o

Perl: (2)
map, grep

  *

分割:

     o

PHP: (
split, explode, strtok, spliti, chunk_split, mb_split, preg_split,
str_split

     o

Perl: (1)
split

  *

匹配:

     o

字符串:

        +

PHP: (11)
strstr, strchr, stristr, strpos, strrchr, stripos, mb_strpos,
mb_strrpos, strrpos, strripos, substr

        +

Perl: (3)
index, rindex, substr

     o

正则表达式:

        +

PHP: (6)
ereg, eregi, mb_ereg, mb_eregi, preg_match, preg_match_all

        +

Perl: (1)
m//

  *

替换匹配部分:

  * PHP: (12)
  ereg_replace, eregi_replace, mb_ereg_replace, mb_eregi_replace,
  preg_replace, str_ireplace, str_replace, ltrim, rtrim, trim, nl2br

  * Perl: (1)
  s///

  *

连接到数据库:

     o

PHP: (17 或更多)
  dbx_connect, fbsql_connect, ibase_connect, msql_connect, msql_pconnect,
  mssql_connect, mysql_connect, odbc_connect, pg_connect, pg_pconnect,
  sesam_connect, ifx_pconnect, ifx_connect, sqlite_open, sqlite_popen,
  mysqli_connect, mysqli_pconnect

     o

Perl: (2)
  DBI->connect, DBI->connect_cached

  *

打开(文件、进程等):

     o

PHP: (5)
  dio_open, fopen, proc_open, popen, gzopen[2]

     o

Perl: (2)
  open, sysopen

  *

读取/接收:

     o

PHP: (12)
  dio_read, fread, gzread[2], socket_read, socket_recv, socket_recvfrom,
  socket_recvmsg, readline, fgetc, fgets, stream_get_line, file

     o

Perl: (5)
  read, readline, sysread, recv, getc

  *

打印/输出/写入:

     o

PHP: (14)
print, echo, printf, fprintf, vprintf, dio_write, fwrite, fputs,
gzwrite[2], socket_send, socket_sendmsg, socket_sendto, socket_write,
socket_writev

     o

Perl: (5)
print, printf, syswrite, send, write

  *

关闭:

     o

PHP: (7)
closelog, dio_close, fclose, gzclose[2], pclose, socket_close,
proc_close

     o

Perl: (1)
close

  *

常用/工具:

     o

PHP:
array_combine, array_fill, array_flip, array_merge, list, range, count,
create_function, strtr, pow, putenv, getenv, getmygid, getmypid, getmyuid

     o

Perl:
使用语法或者魔术变量

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
40 [报告]
发表于 2005-11-18 15:27 |只看该作者
你说的很有道理。

不过php我继续用,perl我也继续用。

条条大道通罗马,365行行行出状元。

他们都很好用。

他们都是我的工具,我是他们的主人,我不是他们的奴隶。

[ 本帖最后由 HonestQiao 于 2005-11-18 15:28 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP