小编chr*_*s01的帖子

Perl:强制继承模块

我有一个Perl包(例如汽车),它是一些其他模块的基类(例如面包车,豪华轿车,敞篷车......) -

use base ("car");
Run Code Online (Sandbox Code Playgroud)

在van的pm文件中,...

我需要确保不使用汽车 - 只允许使用继承的物体(​​货车,豪华轿车,......).

今天我在基类内部使用ref().如果它返回"car"的名称,我知道它在没有继承的情况下使用,然后我退出并出现错误.

如果van,...使用ref()将返回"van",...

是否有更优雅/静态的方式来做到这一点.让我们说一种方法,我可以获得一种语法错误?

不,我不喜欢与OO语言讨论OO主题中Perl的弱点;-)

编辑: 这是一个示例.有用.

问题是,如果是更好的方式来检查car :: new.

#---------car.pm----------
package car;

sub new
{ 
  my $class = shift;
  my $self = {};
  bless ($self, $class);

  if(ref($self) eq "car")    # thats my check to make sure beep exists
  { die "no allowed because no beep here"; 
  }

  $return $self;
}

sub honk
{ beep ();    # only defined in the inherited class (van, ...)
}

1;


#----van.pm-----
package van;

use car; …
Run Code Online (Sandbox Code Playgroud)

perl inheritance

0
推荐指数
1
解决办法
43
查看次数

Perl CPAN:用于网络连接的模块

我需要检查一些Web服务器(HTTP/HTTPS)的网络可用性.为此,我只需要ip/dns和端口.但是我有一个URL列表.我想使用CPAN模块来完成这项工作.

但是: - HTTP :: Tiny,LWP :: UserAgent,...检查HTTP-stats,而不是网络状态.我需要检查第二个(建立连接),我不关心HTTP标头和内容.

  • 简单套接字不支持用于定义目标的URL格式.它需要ip和端口.

那么任何想法,如果HTTP模块也提供网络状态?

谢谢!

perl cpan http

0
推荐指数
1
解决办法
43
查看次数

Perl:哈希 - 按值排序并获取密钥

是否有一些perl"魔法"迭代通过值排序的哈希值,但在迭代中获取密钥?

按X排序并获得X很容易(键,值) - 以及按键排序并获取值.

谢谢!

perl hash

0
推荐指数
1
解决办法
84
查看次数

Java:清算集合中的最佳样式

假设我有一种带有垃圾回收的语言(例如Java)。

for (...)
{
  List <String> lst = new ...
  // do something with lst
  // lst not longer needed for this pass of the loop

  lst.clear ();   
}
Run Code Online (Sandbox Code Playgroud)

循环主体末尾的clear()不是必需的。在下一次传递中,lst将被启动。GC也将释放内存。

但是,清除还是跳过是更好的样式?

java

0
推荐指数
1
解决办法
90
查看次数

Apache PdfBox:关于坐标的混淆

我尝试从 PDF 中提取一些文本。为此,我需要定义一个包含文本的矩形。

当我将文本提取的坐标与绘图的坐标进行比较时,我认识到坐标可能具有不同的含义。

package MyTest.MyTest;

import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.PDPageContentStream.*;
import org.apache.pdfbox.text.*;
import java.awt.*;
import java.io.*;

public class MyTest 
{   
  public static void main (String [] args) throws Exception
  { 
    PDDocument pd = PDDocument.load (new File ("my.pdf"));  
    PDFTextStripperByArea st = new PDFTextStripperByArea ();
    PDPage pg = pd.getPage (0);

    float h = pg.getMediaBox ().getHeight ();
    float w = pg.getMediaBox ().getWidth ();
    System.out.println (h + " x " + w + " in internal units");
    h = h / 72 * 2.54f …
Run Code Online (Sandbox Code Playgroud)

java pdfbox

0
推荐指数
1
解决办法
3206
查看次数

Java:无条件跳转到任何地方的外部范围

假设我有一个执行foo的程序.baz是一个需要测试的新功能.

public static void main (String [] args)
{
  foo ();   // existing

  baz ();  // new
}
Run Code Online (Sandbox Code Playgroud)

为了测试baz,我会把它放在foo前面.所以不需要等待foo.

而且我也希望在巴兹之后结束(跳到外部范围).这是关于测试巴兹,我想在那之后退出.但是我不想把foo放在评论中(也许它比1行更复杂).

我心中最好的就是这个.

public static void main (String [] args)
{
   baz (); 
   if (1==1) return;  // unconditional jump to outer scope

   foo ();
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个

如果(1 == 1)

但我不知道任何其他选择.

不允许简单返回(编译器错误,无法访问的代码).

System.exit只有在我们讨论main时才会起作用,但如果我的代码处于更大的上下文中则不行.我想回到外围.

对此更好的想法?

java

-1
推荐指数
1
解决办法
62
查看次数

标签 统计

java ×3

perl ×3

cpan ×1

hash ×1

http ×1

inheritance ×1

pdfbox ×1