Perl确实功能很方便阿

都举例子说明一下嘛
你去看我发的那个print的帖子,不是明眼人
像偶这种初学者,要在那个空格闹死


QUOTE:
原帖由 perljoker 于 2007-9-29 09:53 发表
你去看我发的那个print的帖子,不是明眼人
像偶这种初学者,要在那个空格闹死

所以说, coding style也是非常重要的.

perldoc perlstyle 里面有一些, best practice书也推荐了很多书写格式.

自己写写小程序无所谓, 如果代码是日后要维护的, 还是尽量规范吧
恩,我写perl的时候,还是借鉴C的风格,尽量不俭省,尽量明晰
但有些是perl语法规范的地方,还是很容易错的,需要长时间才能避免这些错误
还有比如在perl子程序中
一不小心就这么写了$variable=@_;
这样就完蛋了,但是有时候不容易察觉

ps. 在c++版发了个问题,米人回复,凄凉啊
错了在自己


QUOTE:
原帖由 perljoker 于 2007-9-29 10:36 发表
恩,我写perl的时候,还是借鉴C的风格,尽量不俭省,尽量明晰
但有些是perl语法规范的地方,还是很容易错的,需要长时间才能避免这些错误
还有比如在perl子程序中
一不小心就这么写了$variable=@_;
这样就完 ...

C++的问题说说看
sort()函数我的理解,第三个参数好像是返回函数的指针
对于我自己定义的function object,带入总会报错,不知道原因,大家帮我看下


        sort(svec.begin(),svec.end(),str_cmp);    //对sort的调用,对svec排序,sevc申明为vector<string> svec
    bool str_cmp(string &str1,string &str2)      //str_cmp的函数体,通过比较长度排序,后面true,false现在感觉是多余的
{
        return str1.length()<str2.length()?true:false;
}

还有个小问题,是否str_cmp和str_cmp()前者是给指针地址,后者是返回值
谢谢


QUOTE:
原帖由 perljoker 于 2007-9-29 10:43 发表
sort()函数我的理解,第三个参数好像是返回函数的指针
对于我自己定义的function object,带入总会报错,不知道原因,大家帮我看下


        sort(svec.begin(),svec.end(),str_cmp);    //对sort的调用, ...

这个版本中第三个参数是比较你提供比较函数,

把你为自己ojb定义的比较函数贴下呢?

bool str_cmp(string &str1,string &str2)      //str_cmp的函数体,通过比较长度排序,后面true,false现在感觉是多余的
{
        return str1.length()<str2.length()?true:false;
}
这个就是我自己写的。。。加不加括号都报错,报错的多少而已。。。
单独使用是没有问题的,在sort里面调用就报错


QUOTE:
原帖由 perljoker 于 2007-9-29 10:55 发表
bool str_cmp(string &str1,string &str2)      //str_cmp的函数体,通过比较长度排序,后面true,false现在感觉是多余的
{
        return str1.length()

之前说错了, 关于那个括号:
内建的less<int>()之类一定要带(), 因为这里()被定义成的less<int>类的操作符函数, 这里()是一个函数名
你自定义的函数的str_cmp是不带()的, str_cmp就是函数名;



这样就行了
bool str_cmp(const string &str1, cosnt string &str2)
{
        return str1.length() < str2.length();    // 三目的确是多余
}